用c++语言写一个贪吃蛇小游戏
时间: 2023-02-06 11:05:35 浏览: 105
好的,这里是一个用 C 语言写的贪吃蛇小游戏的示例代码:
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <time.h>
#define WIDTH 70 // 地图的宽度
#define HEIGHT 20 // 地图的高度
// 定义蛇的三种状态:向上、向下、向左、向右
#define UP 'w'
#define DOWN 's'
#define LEFT 'a'
#define RIGHT 'd'
// 定义蛇的结构体
typedef struct Snake
{
int x; // 蛇头的横坐标
int y; // 蛇头的纵坐标
char body; // 蛇的身体
char direction; // 蛇的方向
struct Snake *next; // 指向下一节蛇身的指针
} Snake;
// 地图数组
char map[HEIGHT][WIDTH];
// 初始化蛇
Snake* initSnake(int x, int y, char body, char direction)
{
Snake *snake = (Snake*)malloc(sizeof(Snake));
snake->x = x;
snake->y = y;
snake->body = body;
snake->direction = direction;
snake->next = NULL;
return snake;
}
// 在地图上绘制蛇
void drawSnake(Snake *snake)
{
Snake *p = snake;
while (p != NULL)
{
map[p->y][p->x] = p->body;
p = p->next;
}
}
// 生成随机的食物坐标
void generateFood(int *x, int *y)
{
*x = rand() % WIDTH;
*y = rand() % HEIGHT;
}
// 在地图上绘制食物
void drawFood(int x, int y)
{
map[y][x] = '@';
}
// 清空地图
void clearMap()
{
for (int i = 0; i < HEIGHT; i++)
{
for (int j = 0; j < WIDTH; j++)
{
map[i][j] = ' ';
}
}
}
// 打印地图
void printMap()
{
for (int i = 0; i < HEIGHT; i++)
{
for (int j
阅读全文