我的字符贪食蛇(简单版)

这次我来介绍一下我的(简单版)字符贪食蛇的编程。

首先要建立一个游戏的框架
这里写图片描述

接着我给这条蛇命名为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的字样,这时游戏结束。
虽然比起其他的贪食蛇游戏来说这个较为简略,但对于一个编程的初学者来说这也是一个很大的挑战,而我目前的能力可以做到的贪食蛇游戏也只有这么多而已(笑)。
这里写图片描述
最后祝大家也可以做到这个或是比小编我的更加高级的贪食蛇游戏。
谢谢观看!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章