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

У меня в игре змейка поле заполнено буквой a. Как сделать поле пустым? - C++

Восстановить пароль Регистрация
 
Kavbyz
Сообщений: n/a
04.06.2014, 22:18     У меня в игре змейка поле заполнено буквой a. Как сделать поле пустым? #1
# include <iostream>
# include <windows.h>
# include <time.h>
# include <conio.h>
using namespace std;
int snake_size, change_x, change_y, coordinates_x[1000], coordinates_y[1000], food_x = -1, food_y = -1;
char symbol, a[1000][1000];
const int N = 13, M = 17, INTERVAL = 200;

void change_direction()
{
symbol = getch();
switch (symbol)
{
case 'w': if(change_x != 1 || change_y != 0) { change_x = -1; change_y = 0; } break;
case 'a': if(change_x != 0 || change_y != 1) { change_x = 0; change_y = -1; } break;
case 's': if(change_x != -1 || change_y != 0) { change_x = 1; change_y = 0; } break;
case 'd': if(change_x != 0 || change_y != -1) { change_x = 0; change_y = 1; } break;
default : break;
}
}
void show_table()
{
system("cls");
for (int i = 0; i <= N + 1; ++i)
for (int j = 0; j <= M + 1; ++j)
cout << (i == 0 || j == 0 || i == N + 1 || j == M + 1 ? '#' : a[i][j]) << (j <= M ? "" : "\n");
}
void clear_snake_on_table()
{
for (int i = 1; i <= snake_size; ++i)
a[coordinates_x[i]][coordinates_y[i]] = ' ';
}
void show_snake_on_table()
{
for (int i = 2; i <= snake_size; ++i)
a[coordinates_x[i]][coordinates_y[i]] = '@';
}
bool game_over()
{
for (int i = 2; i <= snake_size; ++i)
if (coordinates_x[1] == coordinates_x[i] && coordinates_y[1] == coordinates_y[i]) return true;
return false;
}
void check_coordinates()
{
if (coordinates_x[1] > N) coordinates_x[1] = 1;
if (coordinates_x[1] < 1) coordinates_x[1] = N;
if (coordinates_y[1] > M) coordinates_y[1] = 1;
if (coordinates_y[1] < 1) coordinates_y[1] = M;
}
void next_step()
{
clear_snake_on_table();
for (int i = snake_size; i >= 2; --i)
{
coordinates_x[i] = coordinates_x[i - 1];
coordinates_y[i] = coordinates_y[i - 1];
}

coordinates_x[1] += change_x;
coordinates_y[1] += change_y;

check_coordinates();

if(coordinates_x[1] == food_x && coordinates_y[1] == food_y)
{
snake_size++;
food_x = -1;
food_y = -1;
}

show_snake_on_table();

if (game_over() == true)
{
cout << "You're looser! \n";

system("pause");
exit(0);
}
}
bool food_check()
{
if(food_x == -1 && food_y == -1) return false;
return true;
}
void place_food()

{
srand(time(NULL));
for (int i = 1; i <= 9; ++i)
{
int x = rand(), y = rand();
if(x < 0) x *= -1;
if(y < 0) y *= -1;
x %= (N + 1);
y %= (M + 1);
if(x == 0) ++x;
if(y == 0) ++y;
if(a[x][y] != '@')
{
food_x = x;
food_y = y;
a[x][y] = '+';
return;
}
}
}
void standart_settings()
{
snake_size = 2;

coordinates_x[1] = 1;
coordinates_y[1] = 2;
coordinates_x[2] = 1;
coordinates_y[2] = 1;
change_x = 0;
change_y = 1;
}
int main ()
{
standart_settings();
while (1)
{
if (kbhit() == true)
change_direction();
next_step();
if(food_check() == false)
place_food();
show_table();
Sleep(INTERVAL);
}
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.06.2014, 22:18     У меня в игре змейка поле заполнено буквой a. Как сделать поле пустым?
Посмотрите здесь:

Поле first - целое число, длительность телефонного разговора в минутах; поле second - дробное число, стоимость одной минуты в гривнах C++
Определить сможет ли белый слон расположенный на поле (a,b),одним ходом пойти на поле (e,f),не попав при этом под удар чёрного коня нах.(c,d) C++
C++ Только константное статическое поле НЕ МОЖЕТ быть поле членом класса !
Друзья, подскажите, как в классе создать константное поле, ссылочное поле и объектное поле? C++
Пустой прямоугольный треугольник. Размер катетов – n. ПОМОГИТЕ СДЕЛАТЬ ЕГО ПУСТЫМ. ОН ПОЛНЫЙ У МЕНЯ ПОЛУЧАЕТСЯ C++
Реализовать игровое поле в игре "Тетрис" C++
C++ Как реализовать взаимодействие классов в игре "Змейка"
Экземпляр в хедере. Обьект в меин. Функция в cpp модифицирует поле обьекта. Как сделать? C++

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

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

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