![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 07.02.2011
Сообщений: 35
|
![]()
Как осуществить передвижение тела змейки за головой?
#include <iostream> #include <conio.h> using namespace std; int x = 2; int y = 2; int y2=y; int x2=x+1; int y3=y; int x3 = x2+1; int w = 4; int q = 4; void draw(){ const int A = 10; const int B = 20; char a[A][B]; for(int i = 0;i<A;i++) for(int j = 0;j<B;j++) a[i][j] = '-'; a[q][w] = '*'; a[y][x] = '0'; for(int i = 0;i<A;i++){ for(int j = 0;j<B;j++) cout << a[i][j]; cout << endl; } } void move(){ char m; m=getch(); switch(m){ case 'a': system("cls"); x--; if(x<0){x++;} draw(); break; case 'd': system("cls"); x++; if(x>19){x--;} draw(); break; case 'w': system("cls"); y--; if(y<0){y++;} draw(); break; case 's': system("cls"); y++; if(y>9){y--;} draw(); break; } } void apple(){ if(y==q&&w==x){ q=rand()%10; w=rand()%9; } } int main(){ int avc=99; while(avc!=100){ move(); apple(); } getch(); return 0; } |
![]() |
![]() |
![]() |
#2 |
Пользователь
Регистрация: 15.03.2011
Сообщений: 25
|
![]()
Если так подумать то тело не двигается ... просто убирается последняя клеточка (хвост) и добавляется одна клеточка между головой и туловищем... в переменную заноси координаты хвоста и головы потом в зависимости от направления движения добавляй одну часть змейки а хвост убирай
|
![]() |
![]() |
![]() |
Опции темы | Поиск в этой теме |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Змейка | Vi[RUS] | Помощь студентам | 1 | 20.11.2010 21:59 |
Змейка | ChEaTeR-abc | Помощь студентам | 0 | 19.09.2010 09:34 |
Змейка | SAMY93 | Общие вопросы Delphi | 1 | 27.06.2010 19:58 |
змейка =) | romiccccc | Помощь студентам | 0 | 12.05.2010 11:08 |
ЗМЕЙКА(((( | mizantrop32 | Общие вопросы C/C++ | 2 | 07.04.2010 17:10 |