Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.06.2012, 14:38   #1
Chudik
 
Регистрация: 11.06.2012
Сообщений: 4
Восклицание Змейка на C++

Вот написал змейку как курсовую, все работает, только не могу сделать так, чтобы она начала двигаться задом при нажатии на противоположную от движения клавишу. Слышал что через статус можно так сделать, но так и не разобрался.
Вложения
Тип файла: zip zmeyka.zip (270.5 Кб, 29 просмотров)
Chudik вне форума Ответить с цитированием
Старый 11.06.2012, 15:09   #2
rUs_LAN
Форумчанин
 
Регистрация: 15.11.2008
Сообщений: 577
По умолчанию

зачем перед некоторыми функциями вы используете :: ?
rUs_LAN вне форума Ответить с цитированием
Старый 12.06.2012, 10:47   #3
Chudik
 
Регистрация: 11.06.2012
Сообщений: 4
По умолчанию

Для себя, чтобы видеть, что входит в эту функцию.
Chudik вне форума Ответить с цитированием
Старый 12.06.2012, 20:21   #4
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,430
По умолчанию

Код:
#include <algorithm>
...
switch(ckey)
        {
        case VK_DOWN:
            //if (status == 3) reverse(dots.begin(),dots.end());
            dots[0].Y += 1;
            if (status == 3) reverse(dots.begin(),dots.end());
            status = 1;
            break;
        case VK_UP:
            //if (status == 1) reverse(dots.begin(),dots.end());
            dots[0].Y -= 1;
            if (status == 1) reverse(dots.begin(),dots.end());
            status = 3;
            break;
        case VK_LEFT:
            //if (status == 4) reverse(dots.begin(),dots.end());
            dots[0].X -= 1;
            if (status == 4) reverse(dots.begin(),dots.end());
            status = 2;
            break;
        case VK_RIGHT:
            //if (status == 2) reverse(dots.begin(),dots.end());
            dots[0].X += 1;
            if (status == 2) reverse(dots.begin(),dots.end());
            status = 4;
            break;
        case VK_DELETE:
            continue;
            break;
        case VK_ESCAPE:
            goto aborted;
            break;
        }
Закомментированный код - более правильный по смыслу, имхо.
А сейчас правильно выводится (если раскомментировать те строки и убрать дубли, то при развороте хвост не затирается фоном).
Кстати, все же смог "убить" змейку, так что, возможно, есть дыра в определении смерти змейки.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 12.06.2012, 21:01   #5
Chudik
 
Регистрация: 11.06.2012
Сообщений: 4
По умолчанию

Благодарю!!! Выручили!
Chudik вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Змейка на С# Alex33RU Помощь студентам 0 23.05.2012 16:45
Змейка Vi[RUS] Помощь студентам 1 20.11.2010 21:59
Змейка zamaevac Gamedev - cоздание игр: Unity, OpenGL, DirectX 20 01.07.2010 19:19
Змейка SAMY93 Общие вопросы Delphi 1 27.06.2010 19:58
змейка =) romiccccc Помощь студентам 0 12.05.2010 11:08