М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
Mira12202
Mira12202
06.11.2022 01:04 •  Информатика

Бастапқы бет не үшін керек?​

👇
Открыть все ответы
Ответ:
Sharkade
Sharkade
06.11.2022

#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

4,6(87 оценок)
Ответ:
arisha72
arisha72
06.11.2022
Какую операционную систему используешь? если Linux то:
1) g++ -c mprog.cpp -o mprog.o (-o "output" - файл вывода, -c означает "только компиляция", т.е. не связывать твой файл со сторонними билиотеками типа libc, получим просто файл с машинными командами особо ни к чему не привязанный ".o" - object file, если особо интересно, что же там лежит, можно вызвать "objdump -D mprog.o" либо g++ -S -masm=intel -O0 mprog.cpp, вывод будет в mprog.s)
2) g++ -c prog.cpp -o prog.o (то же самое)
3) g++ prog.o mprog.o -o prog (выполняем связывание двух обектных файлов между собой и со стандартными библиотеками, опять же новое содержимое можно посмотреть "objdump -D mprog")
4) ./prog - запустить твою программу и передать управление в начало функции main (и не важно, в каком файле она лежала, главное, чтобы была одна, хотя иначе шаг 3 выдаст ошибку)
Если винда, то запусти поиск по диску С "mingw32-g++.exe" и через командную строку вызывай для него
1) ...путь...\mingw32-g++.exe -c mprog.cpp -o mprog.o
2) ...путь...\mingw32-g++.exe -c prog.cpp -o prog.o
3) ...путь...\mingw32-g++.exe prog.o mprog.o -o prog.exe 
4) prog.exe
4,7(80 оценок)
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ