这次我来介绍一下我的(简单版)字符贪食蛇的编程。
首先要建立一个游戏的框架
接着我给这条蛇命名为Snaky(个人兴趣不要吐槽)
并设定SnakyY[100]和 SnakyX[100]来当牠的位置(一开始要给牠定一个位置)
接着分别用@和X来当牠的头和身体
好了现在Snaky大概的模样已经定下来了,然后我们就来加入随机食物以及食物出现的位置,代码如下
void food(int i,int j)
{
int x=0,y=0;
srand(time(NULL));
{
x=rand()%17+1;
y=rand()%8+1;
}
map[y][x]='$';
return;
}
因为Snaky每次的位置都不同所以我给牠加了system(“cls”)来清除每一次显示出来的画面
最重要的是我们必须给Snaky加上方向控制,否则牠只会向前走,这样就玩不了啦!
像是这个样子
void L()
{
system("cls");
int i;
if((SnakyY[0]==1)||(map[SnakyX[0]][SnakyY[0]-1]=='X')){
Gameover();
}else{
if(map[SnakyX[0]][SnakyY[0]-1]=='$')
{
food(SnakyY[0]-1,SnakyX[0]);
lenght++;
map[SnakyX[lenght-1]][SnakyY[lenght-1]]='X';
}
for(i=lenght;i>0;i--)
{
SnakyX[i]=SnakyX[i-1];
SnakyY[i]=SnakyY[i-1];
}
map[SnakyX[lenght]][SnakyY[lenght]]=' ';
SnakyY[0]--;
for(i=lenght-1;i>0;i--) map[SnakyX[i]][SnakyY[i]]='X';
map[SnakyX[0]][SnakyY[0]]='@';
show();
}
return;
}
再加上Snaky的运行时间
while(life!=1)
{
timeover=1;
start=clock();
while((timeover=(clock()-start<=100))&&!kbhit());
if(timeover){
Direcation=getch();
}
switch(Direcation)
{
case 'w':
U();
break;
case 'a':
L();
break;
case 'd':
R();
break;
case 's':
D();
break;
}
}
如果输掉了就会出现GameOver的字样,这时游戏结束。
虽然比起其他的贪食蛇游戏来说这个较为简略,但对于一个编程的初学者来说这也是一个很大的挑战,而我目前的能力可以做到的贪食蛇游戏也只有这么多而已(笑)。
最后祝大家也可以做到这个或是比小编我的更加高级的贪食蛇游戏。
谢谢观看!