字符遊戲--貪喫蛇!

上一次用construct2做了一款類似打飛機的遊戲,這次用C語言寫一個簡單的命令行窗口遊戲–貪喫蛇。

比起面向對象編程的construct2,用面向過程的C語言寫起來自然更有難度。

考慮到程序的複雜性。我決定先用置頂向下的方法分析一下貪喫蛇程序所需的代碼。

學習記錄

複雜的程序要儘量分解成小問題

0.主程序
如果 遊戲還在運行
  打印地圖
 輸入控制指令
 讓蛇運動
 打印地圖
否則
 讓遊戲結束.

1.打印遊戲界面
我們將整個遊戲地圖(包括牆,空地,蛇和食物)儲存在一個二維數組裏。然後逐行進行打印即可。當數組裏的數據不斷更新,我們不斷清屏打印地圖出來時,就可以讓人的眼睛以爲是連續的動畫畫面。
這裏寫圖片描述

學習難點記錄:

打印地圖時是(Y,X)型的打印,而不是熟悉的(X,Y)座標。
清屏的操作。

2.控制蛇移動
我們通過鍵盤上的”WSAD”來對應蛇移動方向的“上下左右”。
這裏寫圖片描述

然後在蛇走之前先判斷蛇的下一步是什麼,如果是牆或者是自己的身體,則讓蛇死亡,如果是食物則讓蛇長長一節。

3.放置食物
我們採用隨機函數來產生食物的座標,若新的座標上已有物體,則重新生成
這裏寫圖片描述

學習難點記錄

控制蛇的長大,食物的隨機產生

智能蛇

但是這樣的貪喫蛇並不能自己移動,所以我們得藉助kbhit函數。該函數能檢查是否有鍵盤輸入但是不阻止weile循環的繼續,這樣蛇就能動了。
這裏寫圖片描述

此外,我們還可以寫一個讓蛇自動跑的智能算法。
讓蛇判斷四個方向哪個是可行的並且能最快到達食物。

學習難點

無阻塞的輸入控制
蛇的智能判斷

放張動圖看下效果吧。
這裏寫圖片描述

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