Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
G00CH
0 / 0 / 0
Регистрация: 11.06.2011
Сообщений: 5
#1

Ошибки вроде бы нет, но работает не правильно! - C++

15.04.2012, 00:32. Просмотров 426. Ответов 5
Метки нет (Все метки)

Христос Воскресе!
Вот код:
C++ (Qt)
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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
#include <iostream>
#include <conio.h>
#include <clocale>
#include <cstdlib>
 
using namespace std;
 
int main()
{
    setlocale(LC_CTYPE, "Russian");
    char act;
    int  ch, x, y;
    x = 0;
    y = 0;
    char map[15][20];
    for(int i = 0; i < 15; i++)
    {
        for(int j = 0; j < 20; j++)
        {
            map[i][j]= ' ';
        }
    }
    map[0][0] = 'T';
    while(1)
    {
        act=_getch();
        ch = static_cast<int>(act);
        if (ch == -32)
        {}
        else if (ch == 27)
        {
          break;
        }
        else if (ch == 75)
        {
          // код для передвижения персонажа влево
            map[x][y]= ' ';
            y--;
            map[x][y] = 'T';
 
        }
        else if (ch == 77)
        {
          // код для передвижения персонажа вправо
            map[x][y]= ' ';
            y++;
            map[x][y]='T';
        }
        else if (ch == 72)
        {
          // код для передвижения персонажа вверх
            map[x][y]=' ';
            x++;
            map[x][y]='T';
        }
        else if (ch == 80)
        {
          // код для передвижения персонажа вниз
            map[x][y]=' ';
            x--;
            map[x][y]='T';
        }
        else
        {
          cout << "Вы нажали неверную клавишу!\n";
        }
    }
    cout << "x = " << x <<endl;
    cout << "y = " << y << endl;
    _getch();
}
суть проблемы заключается в том, что мне не рисует программа букву "Т" в клетке с координатами (0;0)
следовательно и не перемещает. Не знаю как разрешишь данную проблему, помогите.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.04.2012, 00:32
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Ошибки вроде бы нет, но работает не правильно! (C++):

Как исправить вот эти ошибки? Вроде все правильно сделал... - C++
/* * test.cpp * * Created on: 05.11.2011 * Author: Sensei */ #include &lt;iostream&gt; using std::cout; using...

Синтаксических и арифметических ошибок в цикле вроде как нет, но он не работает - C++
Вот условие задачи: Дафна инвестировала $100 под простые 10%. Другими словами, ежегодно инвестиция должна приносить 10%...

Задача на рекурсию - почему вроде бы ошибочный код внутри работает правильно? - C++
Изучаю учебник C++, решаю задачки в конце глав. В одной задачке надо было написать рекурсивную функцию, получающую в качестве...

Вроде переполнение, а вроде бы и нет - C++
День добрый! Интересует, почему си не дает мне сделать следующую штуку. int a = 4999998848; cout &lt;&lt; a*2 &lt;&lt; endl; По...

В функции нет указателей - правильно ли она работает? - C++
Программа работает, правильно ли она работает? Меня смущает, что в функции нет указателей. #include &lt;iostream&gt; #include&lt;cstdlib&gt; ...

Прога на Си, все правильно вроде, но выскакивает - C++
Проверьте, пожалуйста, вроде задержку сделала, но выскакивает почему-то не считает результат... #include &lt;vcl.h&gt; #include &lt;conio.h&gt; ...

5
UFO94
264 / 253 / 13
Регистрация: 04.04.2012
Сообщений: 546
15.04.2012, 00:50 #2
Ээ... Я сожет туплю... А где ты вообще печатаешь свою карту?
0
G00CH
0 / 0 / 0
Регистрация: 11.06.2011
Сообщений: 5
15.04.2012, 00:58  [ТС] #3
ну так как в гайде был описан принцип только а не весь код,
то как я понял вот это:
C++ (Qt)
1
2
3
4
5
6
7
8
9
char map[15][20];
    for(int i = 0; i < 15; i++)
    {
        for(int j = 0; j < 20; j++)
        {
            map[i][j]= ' ';
        }
    }
    map[0][0] = 'T';
0
Nekto
342 / 287 / 10
Регистрация: 23.03.2012
Сообщений: 838
15.04.2012, 01:00 #4
Цитата Сообщение от G00CH Посмотреть сообщение
ну так как в гайде был описан принцип только а не весь код,
то как я понял вот это:
C++ (Qt)
1
2
3
4
5
6
7
8
9
char map[15][20];
    for(int i = 0; i < 15; i++)
    {
        for(int j = 0; j < 20; j++)
        {
            map[i][j]= ' ';
        }
    }
    map[0][0] = 'T';
У тебя cout только в конце программы.
0
UFO94
264 / 253 / 13
Регистрация: 04.04.2012
Сообщений: 546
15.04.2012, 01:35 #5
Итого: вывод на консоль всей карты до цикла + в конце цикла, либо в начале цикла + после цикла.
0
Nekto
342 / 287 / 10
Регистрация: 23.03.2012
Сообщений: 838
15.04.2012, 01:56 #6
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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
#include <iostream>
#include <conio.h>
#include <clocale>
#include <cstdlib>
 
using namespace std;
 
int main()
{
    setlocale(LC_CTYPE, "Russian");
    char act;
    int  ch, x, y;
    x = 0;
    y = 0;
    char map[15][20];
    for(int i = 0; i < 15; i++)
    {
        for(int j = 0; j < 20; j++)
        {
            map[i][j]= ' ';
        }
    }
    map[0][0] = 'T';
    while(1)
    {
     system("cls"); 
     for(int i = 0; i <15; i++)
     {
      for(int j = 0; j < 20; j++)       
         cout << map[i][j];
      cout << endl;
      }
        act=_getch();
        ch = static_cast<int>(act);
        if (ch == -32)
        {}
        else if (ch == 27)
        {
          break;
        }
        else if (ch == 75)
        {
          // êîä äëÿ ïåðåäâèæåГ*ГЁГї ïåðñîГ*Г*Г¦Г* âëåâî
            map[x][y]= ' ';
            y--;
            if (y<0) y=19;
            map[x][y] = 'T';
 
        }
        else if (ch == 77)
        {
          // êîä äëÿ ïåðåäâèæåГ*ГЁГї ïåðñîГ*Г*Г¦Г* ГўГЇГ°Г*ГўГ®
            map[x][y]= ' ';
            y++;
            if (y>19) y=0;
            map[x][y]='T';
        }
        else if (ch == 80)
        {
          // êîä äëÿ ïåðåäâèæåГ*ГЁГї ïåðñîГ*Г*Г¦Г* ââåðõ
            map[x][y]=' ';
            x++;
            if (x>14) x=0;
            map[x][y]='T';
        }
        else if (ch == 72)
        {
          // êîä äëÿ ïåðåäâèæåГ*ГЁГї ïåðñîГ*Г*Г¦Г* ГўГ*ГЁГ§
            map[x][y]=' ';
            x--;
            if (x<0) x=14;
            map[x][y]='T';
        }
        else
        {
          cout << "Âû Г*Г*Г¦Г*ëè Г*ГҐГўГҐГ°Г*ГіГѕ ГЄГ«Г*ГўГЁГёГі!\n";
        }
    }
    _getch();
 return 0;
}
1
15.04.2012, 01:56
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.04.2012, 01:56
Привет! Вот еще темы с ответами:

Почему выдаёт ошибку? Вроде всё правильно! - C++

Правильно ли я записываю/ считываю ( принцип вроде да а реализовано УГ) - C++
В общем дан односвязный список помогите найти косяк сама структура struct WORKER { char name, family , dolzhnost ; ...

Выдает ошибку но вроде все правильно посмотрите! - C++
Задача в которой создается указатель второго порядка. #include &lt;iostream&gt; #include &lt;conio.h&gt; int main() { double dx=234.678; ...

Прошу сказать, правильно ли я решил, и , если не правильно, то указать ошибки - C++
Есть задачка \sum_{i=0}^{8}\sum_{j=0}^{10}\sum_{k=0}^{3}\left(\frac{i+3k-4j}{2+3i+4j} \right) и есть мой код (сразу говорю, я...


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

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

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