Форум программистов, компьютерный форум, киберфорум
Наши страницы
C для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
m27
3 / 3 / 3
Регистрация: 09.09.2013
Сообщений: 17
1

Двигать символ в консоли

16.09.2013, 10:13. Просмотров 750. Ответов 3
Метки нет (Все метки)

Помогите дописать код.
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#define w 79
#define left 'a'
#define right 'd'
 
int pos=w/2;
 
int x;
int key;
 
int main()
{
while(1)
{
system("cls");
for(x=0;x<posx;x++)
printf(" ");
{
printf("%c", 1);
    key=getch();
         if(key==left)
         if(posx>0)
               posx--;
         if(key==right);
         if(posx<w)
                posx++;
}
            }
            }
1.Нужно что бы смайл printf("%c", 1) двигался вверх(клавиша w) и вниз(клавиша s).
2.При нажатии на пробел менялся c printf("%c", 1) на printf("%c", 2).
3.При нажатии на клавишу X выполнял команду exit.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.09.2013, 10:13
Ответы с готовыми решениями:

Функция принимает блоки данных (символ1, символ 2, строка), в каждой строке заменять символ 1 на символ 2
функция принимает блоки данный(символ1, символ 2 , строка), в каждом строке...

Дан символ. Вывести символ, который в кодовой таблице следует за этим символом
Дан символ. Вывести символ, который в кодовой таблице следует за этим символом.

Дан символ; вывести символ, который в кодовой таблице следует за этим символом
Задание 1) Дан символ. Вывести символ, который в кодовой таблице следует за...

Дан символ. Определить: является ли данный символ буквой латинского алфавита (верхний регистр)
Система исчисления по умолчанию:десятичная. Должно быть построено логическое...

Как заменить символ-заполнитель на любой символ?
Как заменить символ-заполнитель на любой символ? Например: printf(&quot;%05d&quot;, a)...

3
alex9245
0 / 0 / 0
Регистрация: 02.09.2013
Сообщений: 4
16.09.2013, 14:42 2
а ты не из Молдовы случайно?? xD
лови и разбирайся мне тоже такое на курсах задали
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#define w 80
#define left 'a'
#define right 'd'
#define up 'w'
#define down 's'
#define black 'c'
#define white 'b'
int key,x,a, y,posx= w/4, posy=5;
int main()
{
while(1)
{
 
system("cls");
for(y = 0; y < posy; y++)
printf("\n");
for (x = 0; x < posx; x++)
printf(" ");
switch(key)
{
case 98:
    a=1;break;
case 99:
    a=2;break;
}
printf("%c",a);
key=getch();
if (key==right && posx<w)
posx++;
if (key==left && posx>0)
posx--;
if (key==down)
posy++;
if (key==up)
posy--;
swich(key)
{case 120:
exit(0);
}
}
 
}
0
Forveg
7 / 7 / 5
Регистрация: 14.08.2013
Сообщений: 20
16.09.2013, 23:42 3
Цитата Сообщение от alex9245 Посмотреть сообщение
if (key==right && posx<w) posx++;
if (key==left && posx>0) posx--;
if (key==down) posy++;
if (key==up) posy--;
swich(key) {case 120: exit(0); }
Все это логично объединить в один switch или после каждого if добавить else, чтобы не проверялись все условия подряд.
0
fanatdebian
Z3JheSBoYXQ=
339 / 234 / 83
Регистрация: 08.07.2012
Сообщений: 577
18.09.2013, 02:16 4
Цитата Сообщение от Forveg Посмотреть сообщение
Все это логично объединить в один switch или после каждого if добавить else, чтобы не проверялись все условия подряд.
Правильно мыслишь. Экран де-факто это двумерный массив. Позиция курсора всегда статична и имеет конкретное значение в текущий момент времени. [x][y].
Проверка через switch оптимальна. Не забывай отслеживать достижения курсором "края" экрана, или двумерного массива.

Разрешение 800х600 дает двумерный массив аналогичных размеров. monitor[800][600] aka monitor[x][y].

C
1
2
3
4
5
6
7
8
9
10
switch keypressed {
       case UP: проверка на достижение "верха" экрана ( массива ) 
                        if (monitor[y] < 600 ) {
                             UP_POSTITON_CURSOR++;
                        } 
                         else {
                             printf("Достигли верха экрана, нажмите другую управляющую клавишу"); 
                       }
.....
}
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.09.2013, 02:16

Дана строка. Преобразовать ее, удалив каждый символ (*) и повторив каждый символ, отличный от (*)
напишите пожалуйста решение задачи и к нему СКРИН ну или хотя бы вот эту...

Изменить/дополнить готовый код. Каждый 5-ый символ заменить на символ "№"
#include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; #include &lt;string.h&gt; #pragma hdrstop ...

Преобразовать файл, удалив каждый символ ‘*’ и повторив каждый символ, отличный от ‘*’
Дан текстовый файл. Преобразовать его, удалив каждый символ ‘*’ и повторив...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru