贪吃蛇游戏源码(VS编译环境)
🥕个人主页:开敲🍉
🔥所属专栏:C语言🍓
目录
1. Snake.h 头文件
#include <windows.h>
#include <stdio.h>
#include <stdbool.h>
#include <locale.h>
#include <time.h>
#define INIT_COLS 40
#define INIT_LINES 10#define WALL L'■'
#define SNAKE_BODY L'●'
#define FOOD L'★'
//蛇的方向
enum SnakeDirection
{
UP = 1,
DOWN,
LEFT,
RIGHT
};
//游戏状态
enum GameStatus
{
OK,
KILL_BY_WALL,
KILL_BY_SELF,
END_NORMAL,
PAUSE
};//贪吃蛇蛇身的节点
typedef struct SnakeNode
{
int x;
int y;
struct SnakeNode* next;}SnakeNode;
//贪吃蛇的信息
typedef struct Snake
{
SnakeNode* snake;//指向蛇头的指针
SnakeNode* pfood;//指向食物节点的指针
enum GameStatus sta;//游戏的状态
enum SnakeDirection dir;//贪吃蛇的方向
int food_weight;//食物的分数
int score;//总分
int sleep_time;//贪吃蛇的速度
}Snake;//设置光标位置
void SetPos(int x, int y);
//初始化欢迎界面
void InitWelcome();
//创建游戏地图
void CreatGameMap();
//初始化蛇
void InitSnake(Snake* ps);
//创建食物
void CreatFood(Snake* ps);
//调整贪吃蛇
void ModifySnake(Snake* ps);
//移动贪吃蛇
void SnakeMove(Snake* ps);//吃掉食物
void EatFood(SnakeNode* pnext, Snake* ps);
//不是食物
void NotFood(SnakeNode* pnext, Snake* ps);
//初始化游戏
void InitGame(Snake* ps);
//运行游戏
void GameRun(Snake* ps);
//游戏结束
void GameOver(Snake* ps);
2. Snake.c 源文件
#define KEY_PRESS(VK) ((GetAsyncKeyState(VK)&0x1)?1:0)<