当前位置:实例文章 » 其他实例» [文章]贪吃蛇(C语言)

贪吃蛇(C语言)

发布人:shili8 发布时间:2024-11-20 09:40 阅读次数:0

**贪吃蛇游戏实现**

### **概述**

贪吃蛇是一款经典的益智游戏,玩家控制一个小蛇在一个方格地图上移动,吃掉食物并避免撞到墙壁或自己。下面是贪吃蛇游戏的C语言实现。

### **游戏规则**

1. 玩家控制的小蛇可以向上、下、左、右四个方向移动。
2. 当小蛇吃到食物时,身体会增长一段长度,并且速度也会加快。
3. 如果小蛇撞到墙壁或自己,则游戏结束。

### **代码实现**

#### **头文件**

c#include <stdio.h>
#include <stdlib.h>
#include <time.h>

#define WIDTH20 // 地图宽度#define HEIGHT15 // 地图高度// 定义方向枚举typedef enum {
 UP,
 DOWN,
 LEFT,
 RIGHT} Direction;

// 定义食物类型枚举typedef enum {
 FOOD,
 WALL} FoodType;


#### **结构体定义**

c// 定义小蛇的结构体typedef struct {
 int x, y; // 小蛇的位置 int length; // 小蛇的长度 Direction direction; // 小蛇的方向} Snake;

// 定义食物的结构体typedef struct {
 int x, y; // 食物的位置 FoodType type; // 食物类型} Food;


#### **函数实现**

c// 初始化小蛇和食物void init(Snake* snake, Food* food) {
 snake->x = WIDTH /2;
 snake->y = HEIGHT /2;
 snake->length =1;
 snake->direction = RIGHT;

 food->x = rand() % (WIDTH -1) +1;
 food->y = rand() % (HEIGHT -1) +1;
 food->type = FOOD;
}

// 检查是否撞到墙壁或自己int checkCollision(Snake* snake, Food* food) {
 if (snake->x < 1 || snake->x >= WIDTH || snake->y < 1 || snake->y >= HEIGHT) return1; // 撞到墙壁 for (int i =0; i < snake->length -1; i++) { // 检查是否撞到自己 if (snake->x == food->x && snake->y == food->y) return2;
 }
 return0;
}

// 移动小蛇void move(Snake* snake, Food* food) {
 int collision = checkCollision(snake, food);
 if (collision !=0) {
 printf("Game Over!
");
 exit(1);
 }

 switch (snake->direction) {
 case UP:
 snake->y--;
 break;
 case DOWN:
 snake->y++;
 break;
 case LEFT:
 snake->x--;
 break;
 case RIGHT:
 snake->x++;
 break;
 }
}

//生成食物void generateFood(Food* food) {
 food->x = rand() % (WIDTH -1) +1;
 food->y = rand() % (HEIGHT -1) +1;
}


#### **主函数**

cint main() {
 srand(time(NULL)); // 初始化随机数种子 Snake snake;
 Food food;

 init(&snake, &food);

 while (1) {
 move(&snake, &food);
 printf("Snake Position: (%d, %d)
", snake.x, snake.y);
 printf("Food Position: (%d, %d)
", food.x, food.y);

 // 检查是否吃到食物 if (snake.x == food.x && snake.y == food.y) {
 generateFood(&food); //生成新食物 snake.length++; // 增加小蛇长度 }

 sleep(1); // 等待一秒 }

 return0;
}


### **总结**

贪吃蛇游戏的C语言实现包括了结构体定义、函数实现和主函数。玩家控制的小蛇可以向上、下、左、右四个方向移动,吃到食物后会增长长度并且速度加快。如果小蛇撞到墙壁或自己,则游戏结束。

其他信息

其他资源

Top