Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ С++ Класс треугольник http://www.cyberforum.ru/cpp-beginners/thread1199419.html
Добрый вечер! Я вновь со своей задачей, извините что снова беспокою. (Разработать класс на языке С++ реализующий методы для работы с треугольником: построение треугольника, нахождение площади,...
C++ Удаление данных из структуры Необходимо из структуры удалить данные (средняя оценка), которые меньше вводимого числа М. Я пробовал прописать функцию, но она почему-то не работает (т.е. я не записываю обнуленные данные). В чем... http://www.cyberforum.ru/cpp-beginners/thread1199416.html
C++ Перенести элементы матрицы выше дополнительной диагонали в одномерный массив
Переписать элементы, расположенные выше вспомогательной диагонали в одномерный массив S1, а элементы, расположенные ниже вспомогательной диагонали в одномерный массив S2. Помогите с программой, а...
с++ C++
Найти среднее арифметическое отрицательное элементов. Как сделать чтобы прога высчитывала сколько отрицательных элементов в массиве?
C++ Считать массив структур из файла http://www.cyberforum.ru/cpp-beginners/thread1199389.html
Видела похожие темы, но так и не дошло:( В общем, количество структур в файле мне известно. Нужно считать их в массив. Проблема в том, что я не знаю, считывать их до этого количества или до конца...
C++ Найти среднее арифметическое пяти минимальных элементов массива Найти среднее арифметическое пяти минимальных элементов массива R (10). Вывести найдены минимальные элементы и их среднее арифметическое. Впринципе я нахожу минимальное, я не понимаю как мне... подробнее

Показать сообщение отдельно
Kavbyz

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

04.06.2014, 22:18. Просмотров 230. Ответов 0
Метки (Все метки)

# 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);
}
}
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru