帮我写以一个c++贪吃蛇程序
时间: 2024-05-13 08:20:21 浏览: 14
好的,我可以为您提供一个基础版的C语言贪吃蛇程序:
```
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <windows.h>
#define HEIGHT 20
#define WIDTH 30
int snake[HEIGHT*WIDTH][2], food[2], len = 3, dir, score;
char wall[HEIGHT][WIDTH];
void move(int dir)
{
int dx = 0, dy = 0;
switch (dir)
{
case 1: dx = -1; break;
case 2: dy = 1; break;
case 3: dx = 1; break;
case 4: dy = -1; break;
}
int nx = snake[len-1][0] + dx, ny = snake[len-1][1] + dy;
if (nx == food[0] && ny == food[1])
{
score += 10;
len++;
food[0] = rand() % HEIGHT;
food[1] = rand() % WIDTH;
}
for (int i = 0; i < len-1; i++)
{
snake[i][0] = snake[i+1][0];
snake[i][1] = snake[i+1][1];
}
snake[len-1][0] = nx;
snake[len-1][1] = ny;
}
void print()
{
system("cls");
for (int i = 0; i < HEIGHT; i++)
{
for (int j = 0; j < WIDTH; j++)
{
if (i == snake[len-1][0] && j == snake[len-1][1]) printf(">");
else if (i == food[0] && j == food[1]) printf("x");
else
{
int flag = 0;
for (int k = 0; k < len-1; k++)
{
if (i == snake[k][0] && j == snake[k][1])
{
printf("*");
flag = 1;
break;
}
}
if (!flag) printf(" ");
}
}
printf("\n");
}
printf("Score: %d\n", score);
}
int main()
{
srand((unsigned)time(NULL));
dir = 2;
snake[0][0] = 5, snake[0][1] = 5;
snake[1][0] = 5, snake[1][1] = 4;
snake[2][0] = 5, snake[2][1] = 3;
food[0] = rand() % HEIGHT;
food[1] = rand() % WIDTH;
while (1)
{
if (_kbhit())
{
switch (_getch())
{
case 'w': dir = 1; break;
case 'd': dir = 2; break;
case 's': dir = 3; break;
case 'a': dir = 4; break;
}
}
move(dir);
if (snake[len-1][0] < 0 || snake[len-1][0] >= HEIGHT || snake[len-1][1] < 0 || snake[len-1][1] >= WIDTH)
{
printf("Game Over!\n");
break;
}
for (int i = 0; i < len-1; i++)
{
if (snake[len-1][0] == snake[i][0] && snake[len-1][1] == snake[i][1])
{
printf("Game Over!\n");
goto end;
}
}
print();
Sleep(100);
}
end:
return 0;
}
```
这是一个使用Console API实现的控制台贪吃蛇游戏,其中包括基本的运动控制、碰撞检测、得分计算等逻辑,您可以根据需求进行修改和完善。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)