這次我來介紹一下我的(簡單版)字符貪食蛇的編程。
首先要建立一個遊戲的框架
接着我給這條蛇命名為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的字樣,這時遊戲結束。
雖然比起其他的貪食蛇遊戲來說這個較為簡略,但對於一個編程的初學者來說這也是一個很大的挑戰,而我目前的能力可以做到的貪食蛇遊戲也只有這麼多而已(笑)。
最後祝大家也可以做到這個或是比小編我的更加高級的貪食蛇遊戲。
謝謝觀看!