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

pacman (реализация движения) - C++

Восстановить пароль Регистрация
 
Rikimaru
7 / 7 / 0
Регистрация: 25.09.2010
Сообщений: 31
29.05.2011, 15:54     pacman (реализация движения) #1
реализовано через матрицу 22 на 19
3-пакмэн
1-стена
0-точка
2-не точка
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
for(int i=0; i<22; i++)
                {
                    for(int j=0; j<19; j++)
                    {
                        
                        if (mas[i][j]==3&&mas[i+SS*2-WW*2][j+DD*2-AA*2]!=1)//если на след шаге он сможет двигаться в эту же сторону то запоминаем значения
                        {
                            w=WW;
                            a=AA;
                            s=SS;
                            d=DD;
                        }
                        else//если нет то обнуляем(изначально тоже 0)
                        {
                            w=0;
                            a=0;
                            s=0;
                            d=0;
                        }
                        if (mas[i][j]==3&&mas[i+SS-WW][j+DD-AA]==0)//если точка запоминаем в счетчике и меняем местами
                        {
                            mas[i][j]=2;
                            mas[i+SS-WW][j+DD-AA]=3;
                            br=true;
                            flopesc+=1;
                        }
                        if (mas[i][j]==3&&mas[i+SS-WW][j+DD-AA]==2)//если не точка то просто меняем местами
                        {
                            mas[i][j]=2;
                            mas[i+SS-WW][j+DD-AA]=3;
                            br=true;
                        }
                
                        if (mas[i][j]==3&&mas[i+SS-WW][j+DD-AA]==1&&(WW!=w||AA!=a||SS!=s||DD!=d))//если стена на повороте идем дальше
                        {
                            mas[i][j]=2;
                            mas[i+s-w][j+d-a]=3;
                            br=true;
                        }
 
                        
 
                        if (br==true) break;
                    }
                    if (br==true) break;
                }
вот обработчик key press
C++
1
2
3
4
5
6
7
8
             switch(e->KeyChar)
             {
                case 'w': WW=1, AA=0, SS=0, DD=0; break;
                case 'a': WW=0, AA=1, SS=0, DD=0; break;
                case 's': WW=0, AA=0, SS=1, DD=0; break;
                case 'd': WW=0, AA=0, SS=0, DD=1; break;    
            
             }
ошибка как я понял в логике.. помогите найти

Добавлено через 4 минуты
ошибка в том что если движешся в проходе(к примеру можно двигаться вверх или вниз) то пр и повороте(влево или вправо) он останавливается
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.05.2011, 15:54     pacman (реализация движения)
Посмотрите здесь:

траектория движения черепахи C++
игра pacman C++
C++ Снова Pacman
Pacman консольный C++
C++ Объясните как работает код (pacman)
Первая игра. Pacman C++
C++ Траектория движения мыши
Нахождение направления движения C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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