//这段代码来自参考1
void Pos(int x, int y)
{
COORD pos;
HANDLE hOutput;
pos.X = x;
pos.Y = y;
hOutput = GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleCursorPosition(hOutput, pos);
}
typedef struct _COORD {
SHORT X; // horizontal coordinate
SHORT Y; // vertical coordinate
} COORD;
//LONG==60
//WIDTH==30
void CreateMap()
{
int i;
for(i=0;i<LONG;i++)//上下两行
{
Pos(i,1);
printf("-");
Pos(i,WIDTH-1);
printf("-");
}
for(i=2;i<WIDTH-1;i++)//左右两列
{
Pos(0,i);
printf("|");
Pos(LONG-1,i);
printf("|");
}
}
void CreateMap()
{
int i;
for(i=0;i<LONG;i+=2)
{
Pos(i,0);
printf("■");
Pos(i,WIDTH-1);
printf("■");
}
for(i=1;i<WIDTH-1;i++)
{
Pos(0,i);
printf("■");
Pos(LONG-2,i);
printf("■");
}
}
typedef struct node{
int x;
int y;
}Node;
Node snake[60];
void InitializeSnake()
{
int i;
for(i=0;i<3;i++)
{
snake[i].x = (LONG/2-i*2);//(30,15)(28,15)(26,15)
snake[i].y = WIDTH/2;
Pos(snake[i].x,snake[i].y);
printf("⊙");
}
}
void CreateFood()
{
int i;
srand((unsigned int)time(0));
while(1)
{
do{
food.x = rand()%(LONG-6)+2;
}while(food.x%2!=0);
food.y = rand()%(WIDTH-2)+1;
for(i=0;i<3+length;i++)
if(food.x==snake[i].x && food.y==snake[i].y)
{
i=-1;
break;
}
if(i>=0)
{
Pos(food.x,food.y);
printf("●");
break;
}
}
//AfterEatFood();
}
while(1)
{
//获得输入,改变坐标
//在每个坐标处输出
}
int kbhit(void); // 检查当前是否有键盘输入,若有则返回一个非0值,否则返回0
if(kbhit()) ch = getch();
if(ch=='w'&&direction!='s') direction = ch; else if(ch=='s'&&direction!='w') direction = ch; else if(ch=='a'&&direction!='d') direction = ch; else if(ch=='d'&&direction!='a') direction = ch; else if(ch==' ') continue;
switch(direction)
{
case 'w':
if(snake[0].x==food.x && snake[0].y-1==food.y)
{
length++;
score+=10;
snake[2+length].x = snake[2+length-1].x;
snake[2+length].y = snake[2+length-1].y;
for(i=length+3-2;i>0;i--)
{
snake[i].x = snake[i-1].x;
snake[i].y = snake[i-1].y;
}
CreateFood();
}
else
{
Pos(snake[2+length].x,snake[2+length].y);
printf(" ");
for(i=length+3-1;i>0;i--)
{
snake[i].x = snake[i-1].x;
snake[i].y = snake[i-1].y;
}
}
snake[0].y -=1;
break;
case 's':
//。。。
case 'a':
//。。。
case 'd':
//。。。
}
int ThroughWall()
{
if(snake[0].x==0 || snake[0].x==58 ||
snake[0].y==0 || snake[0].y==29)
{
Pos(25,15);
printf("撞墙 游戏结束");
return 1;
}
Pos(0,WIDTH);
printf(" ");
}
int BiteItself()
{
int i;
for(i=3;i<=2+length;i++)
if((snake[0].x==snake[i].x) && (snake[0].y==snake[i].y))
{
Pos(25,15);
printf("咬到自己 游戏结束");
return 1;
}
}
if(ThroughWall()==1)
{
Pos(25,WIDTH);
system("pause");
exit(0);
}
if(BiteItself()==1)
{
Pos(25,WIDTH);
system("pause");
exit(0);
}
机械节能产品生产企业官网模板...
大气智能家居家具装修装饰类企业通用网站模板...
礼品公司网站模板
宽屏简约大气婚纱摄影影楼模板...
蓝白WAP手机综合医院类整站源码(独立后台)...苏ICP备2024110244号-2 苏公网安备32050702011978号 增值电信业务经营许可证编号:苏B2-20251499 | Copyright 2018 - 2025 源码网商城 (www.ymwmall.com) 版权所有