![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 07.02.2011
Сообщений: 35
|
![]()
Как в консольной змейке указывать ее направление движения - при помощи свитч или поинтеров
|
![]() |
![]() |
![]() |
#2 |
Форумчанин
Регистрация: 13.12.2009
Сообщений: 272
|
![]()
Я бы завел массив 40 на 40 например, и каждая его ячейка что-то значитла бы, напрмиер препятствие, пустоту, часть змеи или еду. И соответственно появлялись бы новые элементы змеи на основании того, как стрелка нажата...
Если я помог вам - порадуйте меня, нажмите на весы слева
![]() |
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 07.02.2011
Сообщений: 35
|
![]()
Ну с этим понятно
а как осуществлять передвижение самой змеи я попробовал написать так: #include <conio.h> #include <iostream> using namespace std; void snakeCor(int r, int s){ const int A = 3; const int B = 3; char a[A][B]; for(int i = 0;i<A;i++) for(int j = 0;j<B;j++) a[i][j] = '-'; a[r][s] = '0'; for(int i = 0;i<A;i++){ for(int j = 0;j<B;j++) cout << a[i][j]; cout << endl; } } int main(){ const int A = 3; const int B = 3; char a[A][B]; for(int i = 0;i<A;i++) for(int j = 0;j<B;j++) a[i][j] = '-'; a[1][1] = '0'; for(int i = 0;i<A;i++){ for(int j = 0;j<B;j++) cout << a[i][j]; cout << endl; } int jk = 999; //fff do{ char m; m=getch(); system("cls"); if(m=='w'){ snakeCor(0,1); char o; o=getch(); system("cls"); if(o=='s'){ snakeCor(1,1); } else if(o=='a'){ snakeCor(0,0); char h; h=getch(); system("cls"); if(h=='d'){ snakeCor(0,1); } else if(h=='s'){ snakeCor(1,0); } } else if(o=='d'){ snakeCor(0,2); } } else if(m=='s'){ snakeCor(2,1); char y; y=getch(); system("cls"); if(y=='w'){ snakeCor(1,1); } else if(y=='a'){ snakeCor(2,0); } else if(y=='d'){ snakeCor(2,2); } } else if(m=='a'){ snakeCor(1,0); char v; v=getch(); system("cls"); if(v=='w'){ snakeCor(0,0); } else if(v=='d'){ snakeCor(1,1); } else if(v=='s'){ snakeCor(2,0); } } else if(m=='d'){ snakeCor(1,2); char b; b=getch(); system("cls"); if(b=='w'){ snakeCor(0,2); } else if(b=='a'){ snakeCor(1,1); } else if(b=='s'){ snakeCor(2,2); } } }while(jk!=1000); //getch getch(); } но получилось мудренно с этиими if или кто подскажет как это сделать по другому? |
![]() |
![]() |
![]() |
Опции темы | Поиск в этой теме |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Строки.Delphi.Консольная. | Atoris | Помощь студентам | 2 | 29.11.2010 14:31 |
С#. Консольная менюшка. | ZaVyLoN | Общие вопросы .NET | 4 | 02.11.2010 15:13 |
Консольная графика... | Sota | C++ Builder | 3 | 01.04.2010 05:48 |
Консольная графика | NoHeart | Общие вопросы C/C++ | 1 | 17.01.2010 20:25 |
Консольная графика в С++ | xbobikx | Общие вопросы C/C++ | 1 | 07.07.2009 00:42 |