Привет! Я решил опробовать свои силы в программировании и написал игру ″Змейка″ на C . Хочу поделиться с тобой своим опытом и кодом‚ который я использовал.cpp
#include
#include
#include
using namespace std;
bool gameOver;
const int width 20;
const int height 20;
int x‚ y‚ fruitX‚ fruitY‚ score;
int tailX[100]‚ tailY[100];
int nTail;
enum eDirecton { STOP 0‚ LEFT‚ RIGHT‚ UP‚ DOWN};
eDirecton dir;
void Setup
{
gameOver false;
dir STOP;
x width / 2;
y height / 2;
fruitX rand % width;
fruitY rand % height;
score 0;
}
void Draw
{
system(″cls″);
for (int i 0; i < width 2; i )
cout << ″#″;
cout << endl;
for (int i 0; i < height; i )
{
for (int j 0; j < width; j )
{
if (j 0)
cout << ″#″;
if (i y nn j x)
cout << ″O″;
else if (i fruitY nn j fruitX)
cout << ″%″;
else
{
bool printTail false;
for (int k 0; k < nTail; k )
{
if (tailX[k] j nn tailY[k] i)
{
cout << ″o″;
printTail true;
}
}
if (!printTail)
cout << ″ ″;
}
if (j width ⸺ 1)
cout << ″#″;
}
cout << endl;
}
for (int i 0; i < width 2; 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;
default⁚
break;
}
if (x > width) x 0; else if (x < 0) x width ⸺ 1; if (y > height) y 0; else if (y < 0) y height ⸺ 1; for (int i 0; i < nTail; i ) if (tailX[i] x nn tailY[i] y) gameOver true; if (x fruitX nn y fruitY) { score 10; fruitX rand % width; fruitY rand % height; nTail ; } } int main { Setup; while (!gameOver) { Draw; Input; Logic; Sleep(10); // Задержка в 10 миллисекунд } return 0; } В этом коде я использовал консольную графику для создания игрового поля и отрисовку элементов игры. Если ты работаешь в IDE‚ скопируй код в проект и запусти его. В консоли появится экран игры‚ где змейка будет двигаться и съедать фрукты. Змейка имеет голову‚ которая обозначается символом ″O″‚ фрукты обозначаются знаком ″%″‚ а хвост змейки обозначается символами ″o″. Ты можешь управлять змейкой с помощью клавиш WASD. Когда змейка достигает границы поля или касается самой себя‚ игра заканчивается. Каждый раз‚ когда змейка съедает фрукт‚ она увеличивает свой хвост и ты получаешь 10 очков. Удачи в создании своей игры ″Змейка″ на C !