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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.02.2011, 23:03   #1
Banner
Пользователь
 
Регистрация: 07.02.2011
Сообщений: 35
По умолчанию Консольная змейка

Как в консольной змейке указывать ее направление движения - при помощи свитч или поинтеров
Banner вне форума Ответить с цитированием
Старый 21.02.2011, 07:19   #2
RoS
Форумчанин
 
Аватар для RoS
 
Регистрация: 13.12.2009
Сообщений: 272
По умолчанию

Я бы завел массив 40 на 40 например, и каждая его ячейка что-то значитла бы, напрмиер препятствие, пустоту, часть змеи или еду. И соответственно появлялись бы новые элементы змеи на основании того, как стрелка нажата...
Если я помог вам - порадуйте меня, нажмите на весы слева
RoS вне форума Ответить с цитированием
Старый 21.02.2011, 10:22   #3
Banner
Пользователь
 
Регистрация: 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
или кто подскажет как это сделать по другому?
Banner вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Строки.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