1. 程式人生 > >貪吃蛇遊戲設計及演算法

貪吃蛇遊戲設計及演算法

首先需要明確設計應該完成的功能,使用鍵盤的上下左右鍵來控制蛇的方向;隨機產生食物,蛇吃到食物後,身體變長一節;設定邊界,蛇撞到牆或者吃到自身的時候,遊戲結束。
以下是思路:
1.一張地圖,四周有牆體。
2.一條蛇,由蛇身和蛇頭組成。
3.食物,蛇吃到食物後身體變長,並且重新生成一個食物。
3.蛇需要移動,這是難實現的一個部分。
4.蛇撞到牆或者自己的身體就會死亡。
5.需要能用鍵盤控制蛇的運動方向。
以下是流程圖
這裡寫圖片描述
1.整個地圖用一個二維字元陣列實現。
2.用一個二維陣列snake [100] [3]來描述,snake[i][0] 的值用來描述頭和身體,snake[i][0] =1表示頭,snake[i][0] =0表示身體,snake[i][1] 和snake[i][2] 分別描述所在的x座標和y座標,i表示第i節身體。
3.通過產生隨機數作為食物的座標,這個座標不能超過地圖的邊界也不能和蛇的座標一樣。
4.蛇的移動,將蛇頭移動到下一個座標的時候,後面的節依次重複前一個節的移動。只需要控制蛇頭的方向,設定一個變數dir=1,表示向上,1,2,3,4分別表示上下左右。如果蛇頭向上走,x不變,y-1。
5.蛇頭撞牆或者自己的身體,通過判斷蛇頭座標是否和牆的座標重合或者和蛇的某一節重合,當碰撞發生後,停止重新整理螢幕。
6.鍵盤輸入方向鍵後,重置dir的值。通過一個函式_kbhit()實現,程式碼如下圖這裡寫圖片描述


將以上思路通過函式實現:這裡寫圖片描述
將這些函式放入迴圈體中,即可實現貪吃蛇遊戲
這裡寫圖片描述