В
Все
М
Математика
О
ОБЖ
У
Українська мова
Д
Другие предметы
Х
Химия
М
Музыка
Н
Немецкий язык
Б
Беларуская мова
Э
Экономика
Ф
Физика
Б
Биология
О
Окружающий мир
Р
Русский язык
У
Українська література
Ф
Французский язык
П
Психология
А
Алгебра
О
Обществознание
М
МХК
В
Видео-ответы
Г
География
П
Право
Г
Геометрия
А
Английский язык
И
Информатика
Қ
Қазақ тiлi
Л
Литература
И
История
KekCheburashka
KekCheburashka
27.09.2021 11:42 •  Информатика

Мне нужно создать игру по языку с++ программирования

Показать ответ
Ответ:
приветядима
приветядима
08.02.2021 16:20

#include<iostream>

#include<cstdlib>

#include<ctime>

#include<conio.h>

using std::cout;

using std::cin;

using std::endl;

bool gameOver;

const int width = 25;

const int height = 25;

int x, y, fruitX, fruitY, score;

int tailX[100], tailY[100];

int nTail;

enum eDirection { STOP = 0, LEFT, RIGHT, UP, DOWN };

eDirection dir;

void Setup() {

gameOver = false;

dir = STOP;

x = width / 2 - 1;

y = height / 2 - 1;

fruitX = rand() % width;

fruitY = rand() % height;

score = 0;

};

void Draw() {

cout << "w = UP" << endl;

cout << "s = DOVN" << endl;

cout << "d = RIGHT" << endl;

cout << "a = LEFT" << endl;

system("cls");//system("clear");

for (int i = 0;i < width + 1;i++) {

 cout << "##";

};

for (int i = 0;i < height;i++) {

 for (int j = 0;j < width;j++) {

  if (j == 0 || j == width - 1) {

   cout << "##";

  };

  if (i == y && j == x) {

   cout << "0";

  }

  else if (i == fruitY && j == fruitX) {

   cout << "F";

  }

  else {

   bool print = false;

   for (int k = 0;k < nTail;k++) {

    if (tailX[k] == j && tailY[k] == i) {

     print = true;

     cout << "o";

    }

   }

   if (!print) {

    cout << " ";

   }

  };

  cout << " ";

 };

 cout << endl;

};

cout << endl;

for (int i = 0;i < width;i++) {

 cout << "#";

};

cout << endl;

cout << "Score: " << score << endl;

};

void Input() {

if (_kbhit()) {

 switch (_getch()) {

 case'a': {

  dir = LEFT;

 }

     break;

 case'd': {

  dir = RIGHT;

 }

     break;

 case'w': {

  dir = UP;

 }

     break;

 case's': {

  dir = DOWN;

 }

     break;

 case'x': {

  gameOver = true;

 }

     break;

 }

};

};

void Logic() {

int prevX = tailX[0];

int prevY = tailY[0];

int prev2X, prev2Y;

tailX[0] = x;

tailY[0] = y;

for (int i = 1;i < nTail;i++) {

 prev2X = tailX[i];

 prev2Y = tailY[i];

 tailX[i] = prevX;

 tailY[i] = prevY;

 prevX = prev2X;

 prevY = prev2Y;

}

switch (dir)

{

case LEFT:

 x--;

 break;

case RIGHT:

 x++;

 break;

case UP:

 y--;

 break;

case DOWN:

 y++;

 break;

}

/*

if (x > width || x < 0 || y>height || y < 0) {

 gameOver = true;

};*/

if (x >= width - 1) {

 x = 0;

}

else if (x < 0) {

 x = width - 2;

}

if (y >= height) {

 y = 0;

}

else if (y < 0) {

 y = height - 1;

}

for (int i = 0;i < nTail;i++) {

 if (tailX[i] == x && tailY[i] == y) {

  gameOver = true;

 }

}

if (x == fruitX && y == fruitY) {

 score += 10;

 fruitX = rand() % width;

 fruitY = rand() % height;

 nTail++;

}

}

int main() {

srand(time(0));

Setup();

while (!gameOver) {

 Draw();

 Input();

 Logic();

}

return 0;

}

Объяснение:

эта игра работает только в кампиляторе Visual studio или qt creater

0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота