贪吃蛇程序改正,运行没贪吃蛇蛇。。
#include<stdio.h>#include<stdlib.h>#include<time.h>#include<conio.h>#include<math.h>i...
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#include<conio.h>
#include<math.h>
int m=0;
int z;
char ch = 's', di;
int n,f;
int a[400][400];//蛇身长度
struct Food //食物
{
int X; //食物坐标
int Y;
int yes; //判断食物是否被干掉
}food;
struct snake //定义蛇的结构体
{
int fx[205];//蛇身子数组储存各节所在的坐标
int fy[205];
int node; //蛇的节数
int life; //设置蛇的死活
}snake;
int map()
{
int i,j,k=0;
for(i=0;i<20;i++)
{
printf("\t\t");
}
}
void gamePlay()
{
food.yes = 1;
snake.life = 0; //蛇是活着的
snake.fx[0] = 10;//前三节蛇的坐标
snake.fy[0] = 10;
snake.fx[1] = 11;
snake.fy[1] = 10;
snake.fx[2] = 12;
snake.fy[2] = 10;
snake.node = 3;
srand((int)time(NULL));
while(1)
{
if(food.yes==1)//食物出现随机出现位置
{
m=0;
while (m==0)
{
food.X=rand()%(18-1+1)+1;
food.Y=rand()%(18-1+1)+1;
for(f=0;f<snake.node;f++)//判断食物是否出现在蛇身,有则返回从先产生随机
{
if(food.X==snake.fx[f]&&food.Y==snake.fy[f])
{
m=0;
break;
}
else
{
m=1;
}
}
}
food.yes = 0;
}
di = ch;
if(kbhit())//控制 接受
ch=getch();//接受 方向键
if(ch=='w'||ch=='W')
{
snake.fx[0] = (snake.fx[0]-1);
}
if(ch=='s'||ch == 'S')
{
snake.fx[0] = (snake.fx[0]+1);
}
if(ch=='a'||ch == 'A')
{
snake.fy[0] = (snake.fy[0]-1);
}
if(ch=='d'||ch == 'D')
{
snake.fy[0] = (snake.fy[0]+1);
} //蛇转弯的控制
if(snake.fx[0]==0||snake.fx[0]==19||snake.fy[0]==0||snake.fy[0]==19)//是否撞墙
{
snake.life=1; //蛇死
}
if(snake.fx[0]==food.X && snake.fy[0]==food.Y)
{
snake.node++; //蛇增加一节
food.yes=1; //食物没有了
}
if(snake.life==1)
{
printf("\n\t\t\t\t游戏结束!!!\n");
break;
}
map();
for(n=snake.node;n>0;n--) //控制蛇身总体前进一步
{
snake.fx[n]=snake.fx[n-1];
snake.fy[n]=snake.fy[n-1];
}
}
}
int main()
{
food.yes =0;
system("title 贪吃蛇 ");//标题
gamePlay();
return 0; //main返回0一般表示程序正常退出
} 展开
#include<stdlib.h>
#include<time.h>
#include<conio.h>
#include<math.h>
int m=0;
int z;
char ch = 's', di;
int n,f;
int a[400][400];//蛇身长度
struct Food //食物
{
int X; //食物坐标
int Y;
int yes; //判断食物是否被干掉
}food;
struct snake //定义蛇的结构体
{
int fx[205];//蛇身子数组储存各节所在的坐标
int fy[205];
int node; //蛇的节数
int life; //设置蛇的死活
}snake;
int map()
{
int i,j,k=0;
for(i=0;i<20;i++)
{
printf("\t\t");
}
}
void gamePlay()
{
food.yes = 1;
snake.life = 0; //蛇是活着的
snake.fx[0] = 10;//前三节蛇的坐标
snake.fy[0] = 10;
snake.fx[1] = 11;
snake.fy[1] = 10;
snake.fx[2] = 12;
snake.fy[2] = 10;
snake.node = 3;
srand((int)time(NULL));
while(1)
{
if(food.yes==1)//食物出现随机出现位置
{
m=0;
while (m==0)
{
food.X=rand()%(18-1+1)+1;
food.Y=rand()%(18-1+1)+1;
for(f=0;f<snake.node;f++)//判断食物是否出现在蛇身,有则返回从先产生随机
{
if(food.X==snake.fx[f]&&food.Y==snake.fy[f])
{
m=0;
break;
}
else
{
m=1;
}
}
}
food.yes = 0;
}
di = ch;
if(kbhit())//控制 接受
ch=getch();//接受 方向键
if(ch=='w'||ch=='W')
{
snake.fx[0] = (snake.fx[0]-1);
}
if(ch=='s'||ch == 'S')
{
snake.fx[0] = (snake.fx[0]+1);
}
if(ch=='a'||ch == 'A')
{
snake.fy[0] = (snake.fy[0]-1);
}
if(ch=='d'||ch == 'D')
{
snake.fy[0] = (snake.fy[0]+1);
} //蛇转弯的控制
if(snake.fx[0]==0||snake.fx[0]==19||snake.fy[0]==0||snake.fy[0]==19)//是否撞墙
{
snake.life=1; //蛇死
}
if(snake.fx[0]==food.X && snake.fy[0]==food.Y)
{
snake.node++; //蛇增加一节
food.yes=1; //食物没有了
}
if(snake.life==1)
{
printf("\n\t\t\t\t游戏结束!!!\n");
break;
}
map();
for(n=snake.node;n>0;n--) //控制蛇身总体前进一步
{
snake.fx[n]=snake.fx[n-1];
snake.fy[n]=snake.fy[n-1];
}
}
}
int main()
{
food.yes =0;
system("title 贪吃蛇 ");//标题
gamePlay();
return 0; //main返回0一般表示程序正常退出
} 展开
2011-06-11
展开全部
没有图形界面,也没有输出。
可以输入一个图形界面,比如**************
+************
***+********-*
具体*、+、-代表什么就由你决定了,在输出时不停的刷新(速度要慢,用\t应该可以),这样就能看到动态效果了。
可以输入一个图形界面,比如**************
+************
***+********-*
具体*、+、-代表什么就由你决定了,在输出时不停的刷新(速度要慢,用\t应该可以),这样就能看到动态效果了。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询