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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Kavbyz
0 / 0 / 0
Регистрация: 16.11.2015
Сообщений: 6
#1

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

04.06.2014, 22:18. Просмотров 232. Ответов 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);
}
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.06.2014, 22:18
Здравствуйте! Я подобрал для вас темы с ответами на вопрос У меня в игре змейка поле заполнено буквой a. Как сделать поле пустым? (C++):

Друзья, подскажите, как в классе создать константное поле, ссылочное поле и объектное поле? - C++
Препод на защите лабораторной по классам дал задание большое. В общем-то все пункты я знаю как делать, кроме этого. Вот что такое...

Пустой прямоугольный треугольник. Размер катетов – n. ПОМОГИТЕ СДЕЛАТЬ ЕГО ПУСТЫМ. ОН ПОЛНЫЙ У МЕНЯ ПОЛУЧАЕТСЯ - C++
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; using namespace std; int main() { int i, j; int n; cout &lt;&lt; &quot;PA3MEP = &quot;; ...

Только константное статическое поле НЕ МОЖЕТ быть поле членом класса ! - C++
class CCoords { static const float rate = 1.0f; // ОШИБКА !!! bool IsComputed; float x,y; POINT2D ...

Экземпляр в хедере. Обьект в меин. Функция в cpp модифицирует поле обьекта. Как сделать? - C++
Как сделать что бы void modif() изменял значение поля hours для обьекта st2. Есть 3 файла: 1.h 2.cpp main.cpp 1.h class...

Алгоритм хода компьютера в игре "Крестики-Нолики" на неограниченном поле - C++
Крестики нолики на неограниченном поле

Реализовать игровое поле в игре "Тетрис" - C++
Добрый вечер, писал программу тетрис, и ни как не могу исправить некоторые ошибки Что нужно: 1. Нужно поле игровое по центру консоли...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.06.2014, 22:18
Привет! Вот еще темы с ответами:

Определить сможет ли белый слон расположенный на поле (a,b),одним ходом пойти на поле (e,f),не попав при этом под удар чёрного коня нах.(c,d) - C++
ребята помогите пожалуйста!я в с++ вообще не бум-бум! у меня 2-е задачи с шахматами!а я даже играть не умею в них!помогите пожалуйста!я...

Поле first - целое число, длительность телефонного разговора в минутах; поле second - дробное число, стоимость одной минуты в гривнах - C++
Поле first - целое число, длительность телефонного разговора в минутах; поле second - дробное число, стоимость одной минуты в гривнах....

Как реализовать взаимодействие классов в игре "Змейка" - C++
Всем привет. Я пишу змейку и у меня следующий вопрос. У меня есть несколько классов Game, Snake, Block, Food. Каждый класс в отдельном...

Рандомные стенки в игре Змейка - C++
Собираюсь делать стенки для игры Змейка. Хотелось бы спросить о математической части. Формулу для генерации лучше делать одну или возможно...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.