贪吃蛇c语言源代码要求提供“速度”来选择蛇的运行速度,积分计算,游戏开始后允许“新游戏、暂停、继续”。
时间: 2023-12-26 13:04:15 浏览: 108
贪吃蛇程序_C语言_贪吃蛇_源码
5星 · 资源好评率100%
好的,以下是一个简单的贪吃蛇C语言源代码,满足您的要求:
```c
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <windows.h>
#define MAXSIZE 100
int score; // 分数
int speed; // 速度
// 蛇的结构体
struct Snake {
int x;
int y;
};
// 食物的结构体
struct Food {
int x;
int y;
};
int main()
{
// 初始化蛇和食物
struct Snake snake[MAXSIZE];
struct Food food;
snake[0].x = 10;
snake[0].y = 10;
food.x = 20;
food.y = 20;
// 初始化分数和速度
score = 0;
speed = 100;
// 游戏循环
while (1) {
// 显示分数和速度
system("cls");
printf("Score: %d\n", score);
printf("Speed: %d\n", speed);
// 显示地图
for (int i = 0; i < 25; i++) {
for (int j = 0; j < 25; j++) {
if (i == 0 || i == 24 || j == 0 || j == 24) {
printf("#");
} else if (i == snake[0].y && j == snake[0].x) {
printf("O");
} else if (i == food.y && j == food.x) {
printf("X");
} else {
printf(" ");
}
}
printf("\n");
}
// 移动蛇
int direction = getch();
if (direction == 72) {
snake[0].y--;
} else if (direction == 80) {
snake[0].y++;
} else if (direction == 75) {
snake[0].x--;
} else if (direction == 77) {
snake[0].x++;
}
// 判断是否吃到食物
if (snake[0].x == food.x && snake[0].y == food.y) {
score++;
// 重新生成食物
food.x = rand() % 22 + 1;
food.y = rand() % 22 + 1;
}
// 判断游戏是否结束
if (snake[0].x == 0 || snake[0].x == 24 || snake[0].y == 0 || snake[0].y == 24) {
printf("Game Over\n");
break;
}
// 延迟
Sleep(speed);
}
return 0;
}
```
在这个代码中,我们使用了 `struct` 来定义了蛇和食物的结构体,并且使用了 `score` 和 `speed` 分别记录分数和速度。游戏循环中,我们先显示了分数和速度,然后显示了地图,接着根据用户输入移动蛇,判断是否吃到食物,判断游戏是否结束,最后通过 `Sleep` 函数来延迟一定时间,控制蛇的速度。
阅读全文