该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
#include
#include
#include
#include
//#define N 6
int i,j;
int level;
int score=0;
int t=0;
char map[16][21]={"====================",
"=#####@ =",
"= =",
"= =",
"= =",
"= =",
"= =",
"= =",
"= =",
"= =",
"= =",
"= =",
"= =",
"= =",
"= =",
"===================="};
struct Food
{
int x;/*食物的横坐标*/
int y;/*食物的纵坐标*/
bool yes;/*判断是否要出现食物的变量*/
}food;/*食物的结构体*/
struct Snake
{
int x[0];//蛇的坐标;N表示蛇的第几节 ,头部为第0节
int y[0];
int node;/*蛇的节数,第0节表示头*/
int life;/* 蛇的生命,0活着,1死亡*/
}snake;/*蛇的结构体*/ void putfood(int i,int j)//i,j为蛇头坐标
{
//生成随机坐标,当随机坐标为蛇身或者蛇头或墙时重新生成
int x=0,y=0;
food.yes=0;
srand(time(NULL)); //初始化随机数种子
while ((map[y][x]=='#')||(map[y][x]=='@')||((x==i)&&(y==j)))
{
x=rand()%18+1; //产生0-9的数,如果要产生0-10,用rand()%10+1
y=rand()%13+1;
}
map[y][x]='O';
return;
}
void output()//移动之后重新铺地图
{
int i,j;
system("cls"); //每移动一次清屏一次并重铺地图
//printf("Up:w Down:s Left:a Right:d\n");
for (i=0;i<16;i++)//行控制
{
for (j=0;j<21;j++)//列控制
{
printf("%c",map[i][j]);//显示新地图
}
printf("\n");
}
printf("level:%d score:%d\n",level,score);
}
int GameOver()
{
snake.life=1; //当life=1时程序结束.
printf("Game Over!!!\n");
printf("your score is %d.\n",score);//输出游戏信息
return 0;
}
void chooselevel()
{
printf("请输入游戏等级 1 2 3 4 5 \n");
scanf("%d",&level);
t=6000/level;//游戏难度
}
void getscore()
{
score+=10;
if(score%100==0)
{
if(level==5) ;
else
{
printf("level up!!\n");
level+1;
}
}
}
void turn_up() //向上走的函数
{
int i;
if ((snake.y[0]-1==0)||(snake.x[0]==0)||(map[snake.y[0]-1][snake.x[0]]=='#')||(map[snake.y[0]-1][snake.x[0]]=='='))