贪吃蛇,游戏规则就不介绍了。
直接上图,给大家看程序的运行效果:
这个是游戏首页!
这个是游戏提示页,如果用户在首页不知道如何操作,随便点击一个按键就会有提示页面出现!
以下是游戏界面截图
下面上菜了(源码中有些字符串看起来可能没有对齐,不用理,直接复制粘贴,然后编译执行!)
#include<stdio.h>
#include<string.h>
#include<windows.h>
#include<time.h>
#include<conio.h>
#include"stdlib.h"
/*
上 224 72
下 224 80
左 224 75
右 224 77
*/
const WORD FORE_BLUE = FOREGROUND_BLUE; //蓝色文本属性
const WORD FORE_GREEN = FOREGROUND_GREEN; //绿色文本属性
const WORD FORE_RED = FOREGROUND_RED; //红色文本属性
const WORD FORE_PURPLE = FORE_BLUE | FORE_RED; //紫色文本属性
const WORD FORE_CYAN = FORE_BLUE | FORE_GREEN; //青色文本属性
const WORD FORE_YELLOW = FORE_RED | FORE_GREEN; //黄色文本属性
const WORD FORE_GRAY = FOREGROUND_INTENSITY; //灰色文本属性
const WORD BACK_BLUE = BACKGROUND_BLUE; //蓝色背景属性
const WORD BACK_GREEN = BACKGROUND_GREEN; //绿色背景属性
const WORD BACK_RED = BACKGROUND_RED; //绿色背景属性
const WORD BACK_PURPLE = BACK_BLUE | BACK_RED; //紫色背景属性
const WORD BACK_CYAN = BACK_BLUE | BACK_GREEN; //青色背景属性
const WORD BACK_YELLOW = BACK_RED | BACK_GREEN; //黄色背景属性
const WORD BACK_GRAY = BACKGROUND_INTENSITY; //灰色背景属性
HANDLE handle_out = GetStdHandle(STD_OUTPUT_HANDLE); //获得标准输出设备句柄
CONSOLE_SCREEN_BUFFER_INFO csbi; //定义窗口缓冲区信息结构体
// 蛇的身体节点
struct BodyNode {
int typeFlag; // 类型,用于区分头、身体、尾部
int x; // 所处地图上的x坐标
int y; // 所处地图上的y坐标
BodyNode *next; // 下一个节点
BodyNode *last; // 上一个节点
};
// 头节点
BodyNode* head;
// 尾巴
BodyNode* tail;
// 蛇的移动方向(1:上、2:右、3:下、4:左、5:静止状态)
int direction = 5;
// 游戏状态(1:运行中、0:死亡、暂停)
int gameStatus = 1;
// 程序状态(1:正常运行、0:结束)
int power = 1;
// 控制着是否创建食物
bool createFoodFlag = false;
// 当前的小蛇的长度(包括头)
int snakeLength = 3;
int snakeSpeed = 300;
const int GAME_MAP_HEIGHT = 25;
const int GAME_MAP_WIDTH =