能否提供一份C语言实现的简单贪吃蛇游戏代码示例?
时间: 2024-10-23 21:09:06 浏览: 15
C语言项目实战-贪吃蛇游戏视频课程.zip
3星 · 编辑精心推荐
当然可以。下面是一个非常基础的C语言贪吃蛇游戏的代码示例。这个版本仅包含基本的游戏规则,如移动、碰撞检测和吃到食物增长身体等。请注意,完整的贪吃蛇游戏会更复杂,包括游戏循环、用户输入处理、窗口绘制等功能。
```c
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#define SNAKE_SPEED 5
#define WINDOW_WIDTH 40
#define WINDOW_HEIGHT 20
#define SNAKE_LENGTH 3
typedef struct {
int x;
int y;
} Point;
void draw_window();
void move_snake(Point *snake);
bool check_collision(Point snake_head, Point food);
int main() {
Point snake[1 + SNAKE_LENGTH], food = {rand() % WINDOW_WIDTH, rand() % WINDOW_HEIGHT};
snake[0] = {SNAKE_LENGTH / 2, WINDOW_HEIGHT / 2}; // 初始化蛇头在中间
while (true) {
draw_window();
// 移动蛇并检查碰撞
if (_kbhit()) {
move_snake(snake);
if (check_collision(snake[0], food)) {
printf("Game Over!\n");
break;
}
}
// 食物移动或生成新食物
if (snake[0].x == food.x && snake[0].y == food.y) {
food = {rand() % WINDOW_WIDTH, rand() % WINDOW_HEIGHT};
snake[SNAKE_LENGTH - 1].x = snake[SNAKE_LENGTH - 2].x; // 增加蛇身长度
snake[SNAKE_LENGTH - 1].y = snake[SNAKE_LENGTH - 2].y;
} else {
snake[0] = snake[1];
}
// 继续游戏
}
return 0;
}
// 其他函数省略...
```
阅读全文