Форум программистов, компьютерный форум CyberForum.ru

Решил попробовать написать небольшую консольную игрушку - C++

Восстановить пароль Регистрация
 
mersinvald
1 / 1 / 0
Регистрация: 25.08.2012
Сообщений: 47
20.09.2012, 02:12     Решил попробовать написать небольшую консольную игрушку #1
Доброго времени суток!
Коротаю время, решил попробовать написать игрушку. Нуу.. просто попробовать.
уже на начальной стадии столкнулся с проблемой. Никак не могу понять в чем дело. все время по непонятной причине обьект при движении вверх смещается ВПРАВО и вверх, причем что странно: через некоторое время он перестает так делать, но при нажатии какой либо другой клавиши кроме ВВЕРХ начинается снова, причем количество смещений ровно по количеству нажатий других клавишь. Проблему так и не выявил, пошаговый прогон результата не дал, только показал что по мистической причине компилятор магическим образом пропускает запрос на нажатие клавиши переходя сразу к switch, мистическим образом выбирая все время именно вправо, не менее магически потом переставая это делать. в общем ничего не понимаю...
Может кто то разберется?
Вот код:
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
#include <iostream>
#include <conio.h>
#include <windows.h>
using namespace std;
 
     
int main()
{
    
    string xsymbol(" ");
    string ysymbol("\n");
    int posx=35, posxo=40;
    int posy=15, posyo=17;
    char symbol = _getch();
    char lr=0;
    int whats;
     while(1){
            for(int i=0;i<=posy;i++)
                 cout<<endl;
            for(int i=0;i<=posx;i++)
                 cout<<xsymbol;
            cout<<":)";
            
                           
               symbol = _getch();
              
               
               
               switch( symbol ) 
               {
               case 80:
                //"Г‚Г*ГЁГ§";
                posy=8;
                
               case 72:
                //"Ââåðõ";
                posy--;
                
               case 77:
                //"ÂïðГ*ГўГ®";
                posx++;
                break;
               case 75:
                //"Âëåâî";
                posx--;
                break;
                
               default: 
                break;
                
          }
            symbol=0;
            if(posx<25) posx++;
            if(posx>45) posx--;
            if(posy<1) posy++;
            if(posy>30) posy--;
            
            Sleep(20);
            system("cls");
            }
            }
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.09.2012, 02:12     Решил попробовать написать небольшую консольную игрушку
Посмотрите здесь:

C++ Написать консольную программу
C++ Нужно написать небольшую програмку на С++
захотел написать консольную программку для пингования C++
C++ Написать консольную программу , выполняющую следующие действия
C++ Написать небольшую программку с мелкими функциями удаленного контроля другого компьютера по LAN или Wi-Fi
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
castaway
Эксперт С++
4848 / 2987 / 368
Регистрация: 10.11.2010
Сообщений: 11,028
Записей в блоге: 10
Завершенные тесты: 1
20.09.2012, 02:21     Решил попробовать написать небольшую консольную игрушку #2
Твой код звучит как болгарский сладкий перец азиш. Ни хрена не понятно, тошно, но выглядит красиво...
DU
1477 / 1053 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
20.09.2012, 02:26     Решил попробовать написать небольшую консольную игрушку #3
брейки пропущены
C++
1
2
3
4
5
6
7
8
9
               case 72:
                //"Вверх";
                posy--;
                break; // вот тут нужен брейк. и в кейсе с нажатием вниз тоже.
                
               case 77:
                //"Вправо";
                posx++;
                break;
при нажатии вверх происходит смещение y позиции вверх и сразу же смещение вправо. в конце каждого кейса нужно break; ставить.
mersinvald
1 / 1 / 0
Регистрация: 25.08.2012
Сообщений: 47
30.04.2015, 02:40  [ТС]     Решил попробовать написать небольшую консольную игрушку #4
Пробегался по старым тредам.
Ваш комментарий сделал мой вечер
Цитата Сообщение от castaway Посмотреть сообщение
Твой код звучит как болгарский сладкий перец азиш. Ни хрена не понятно, тошно, но выглядит красиво...
Прошло 3 года, я учусь на системного программиста, а мой код все так же похож на Азиша
Спасибо за точную характеристику
Yandex
Объявления
30.04.2015, 02:40     Решил попробовать написать небольшую консольную игрушку
Ответ Создать тему
Опции темы

Текущее время: 18:39. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru