貪吃蛇 c 實現

2021-08-30 21:53:21 字數 2412 閱讀 8237

週末無聊,嘗試寫了下貪吃蛇。先上**

#include#include#include#include#include#includeusing namespace std;

#define up 72;

#define down 80;

#define left 75;

#define right 77;

struct xyval

;queueque;

int main()

for (int i = 1; i < 21; i++)

//核心

//生成頭部*和乙個果實$

int xval, yval, xfood, yfood;

srand(time(0));

xval = rand() % 14 + 3;

yval = rand() % 14 + 3;

playspace[xval][yval] = '*';

que.push(xyval);

do while (xfood == xval && yfood == yval);

playspace[xfood][yfood] = '$';

for (int i = 0; i < 22; i++)

//初始的移動方向

int move;

int movei = rand() % 4 + 1;

switch (movei)

//移動

while (1)

if (playspace[xval][yval] == '@' || playspace[xval][yval] == '*')

break;

switch (playspace[xval][yval])

);temp = que.front();

que.pop();

playspace[temp.x][temp.y] = 0;

break;

case '$':

playspace[xval][yval] = '*';

temp.x = xval;

temp.y = yval;

que.push(temp);

do while (playspace[xfood][yfood] != 0);

playspace[xfood][yfood] = '$';

break;

} //輸出此刻的狀態

for (int i = 0; i < 22; i++)

//sleep(1 * 2000);

//輸入鍵盤控制

if (clock() > leveltime)

if (level > 4)

level = 4;

clock_t timebegin = clock();

char ch;

while (1)

else if (clock() - timebegin >= 1000 / level)

break;

} if (ch == 72 || ch == 75 || ch == 77 || ch == 80)

move = ch;

ch = 0;

}cout << "failed" << endl;

system("pause");

return 0;

}

貪吃蛇是乙個二維畫素遊戲。因為使用乙個char型別的二維陣列來實現。

使用cout函式不斷的有間隔時間的列印這個二維陣列,實現貪吃蛇的移動效果。

使用乙個佇列來儲存「貪吃蛇」這條蛇所有元素的「座標」,也就是相應元素在二維陣列中的索引。

通過clock()函式,來給使用者一定時間輸入控制。

1. 是牆壁或蛇自身。此時遊戲失敗,結束程序。**僅需跳出迴圈,輸出「failed」即可。

2. 是果實。此時果實變成蛇的頭部,將這個座標push到佇列que中。此外還需要另外生成乙個果實。

3. 是空的。此時下乙個節點稱為蛇的頭部,而蛇的尾部節點的座標放在que的隊首。使用que.front()獲得這個需要刪除的節點的座標, 將這個座標對應的二維陣列值設為0,然後pop出佇列。

1. 使用rand結合srand、time(0)生成的隨機數來產生果實和頭部的隨即座標。

2. 注意,果實、頭部的座標只能生成在「空位」,如果這個位置不是空的,就需要重新生成座標。

1. 使用kbhie()函式來檢測是否有鍵盤輸入,getch()來獲取鍵盤輸入。

2. 使用乙個迴圈巢狀乙個時間條件來實現「限時」。(之前用sleep()來做的時候發生一些意外,究其原因,sleep是將整個程式暫停,暫停期間使用者的輸入是不會被程式接受的。而這個迴圈可以一直等待使用者輸入)

3. 使用乙個時間函式來實現level(難度)隨時間增長的特性。

眼花。尤其的難度增高以後,把我看哭了。。。。

c 實現貪吃蛇

include include include include include include include include include word square color 7 義方向 define key up 72 define key down 80 define key left 75...

C 實現貪吃蛇

vs 2015 easyx 蛇能上下左右移動 蛇能吃食物 能判斷蛇的死亡 蛇的長度,每節蛇的座標,蛇移動的方向 蛇初始化,移動,改變方向,吃食物,畫蛇,蛇是否死亡 食物的座標,食物是否被吃掉 初始化食物,新的食物,畫食物 因為蛇吃食物時需要知道食物的座標,所以需要獲得食物座標的方法 因為蛇吃食物後需...

C實現貪吃蛇

include include include include define width 25 define high 15 int movedirection 1 2 3 4是小蛇的移動方向,分別表示上下左右 int canvas high width 二維陣列儲存遊戲畫布中對應的元素 0為空格,...