#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<ctime>
#include<conio.h>
using namespace std;
typedef struct{ int x, y; }Point;
char map[22][22]; //定义一个22*22的地图(含边界)
Point snake[400], food, Next; //定义蛇、食物、下一步蛇头的位置
int head, tail; //用于储存蛇头和蛇尾的下标
int grade, length, autotime; //游戏等级、蛇长、自动前进所需时间
char direction; //前进方向
//用inline定义内联函数节省程序运行时的调用开销
//刷新地图
inline void Update(char map[][22], int grade, int length, int autotime)
{
system("cls"); //清屏
int i, j;
printf("\n");
for (i = 0; i < 22; i++)
{
printf("\t");
for (j = 0; j < 22; j++)
printf("%c ", map[i][j]);
if (i == 0)
printf("\t等级为:%d", grade);
if (i == 2)
printf("\t长度为:%d", length);
if (i == 6)
printf("\t自动前进时间");
if (i == 8)
printf("\t间隔为:%d ms", autotime);
printf("\n");
}
}
//欢迎界面
inline void hello()
{
puts("\n\n\n\t\t\t贪吃蛇游戏即将开始!"); //准备开始
double start;
for (int i = 3; i >= 0; i--)
{
start = (double)clock() / CLOCKS_PER_SEC; //得到程序目前为止运行的时间
while ((double)clock() / CLOCKS_PER_SEC - start <= 1); //经过1秒之后
if (i > 0)
{
system("cls"); //清屏
printf("\n\n\n\t\t\t进入倒计时:%d\n", i); //倒计时
}
else
Update(map, grade, length, autotime); //刷新地图
}
}
//随机生成食物位置
inline void f()