智慧型蛇初試

2021-08-14 04:33:46 字數 782 閱讀 5481

在完成了貪吃蛇的程式後,便想能不能設計乙個程式來『智慧型』的操控貪吃蛇,以求獲取乙個前所未有的最高分。

首先,智慧型蛇得會『自己』動,這或許只用乙個迴圈就行了,但是執行迴圈的時間太短,我們得用sleep()函式來設定停頓的時間,來使其看起來像是『自動』的。

其次,寫乙個函式,來判斷蛇可以向那幾個方向移動,並且找出從那乙個方向移動的距離最短,向那個方向移動。

最後,只要將printf(「\033[2j」)放在最後進行清屏,就可以使智慧型蛇看起來真正像是『自己』動了。

這樣,乙個簡單的智慧型蛇就完成了,但是這程式不夠完整,智慧型蛇極易死,蛇身大多只能增長到20,蛇就死亡了。

乙個長度為5的障礙物,若放在中間,會使得蛇會極易被困死,最後的蛇身長度大幅度減小,但若放在地圖邊緣,與牆緊密相接,那就影響不太大。

若要提高蛇的生存率,則要進行模擬,模擬蛇按照原先的路徑吃掉食物後情況,判斷是否會把自己圍死,倘若是這樣,則放棄原路,選取一條新路行動,以求獲取高分數。

智慧型蛇演算法

編寫智慧型演算法 編寫人工智慧程式,使得 snake 每秒自動走一步。決定蛇行走的方向函式的偽 hx,hy 頭的位置 fx,fy 食物的位置 function wheregonext hx,hy,fx,fy 記錄可走的方向 用陣列distance 3 記錄離食物的距離 分別計算蛇頭周邊四個位置到食物...

何為智慧型蛇

之前寫了乙個貪吃蛇的小遊戲 命令列視窗 現在開始寫乙個簡單的ai,大多數據都是從網上查詢的,但是絕對不會抄,會自己實現和在基礎上改進吧。網上的資料我看得懂的有四種方法 貪婪法 bfs dfs和a 法 貪婪法就是走曼哈頓距離,即abs x food x abs y food y 最小且不會撞到牆或者是...

貪吃蛇高階 智慧型蛇

做完了人工操控的貪吃蛇,由於太懶了 我們來設計乙個可以自動尋找食物的智慧型蛇吧w 思路 我們只需對原來人工操作的貪吃蛇 稍作修改即可。首先,我們要讓蛇能夠根據食物的位置自動判斷自己移動的方向。注意,此時如果只是簡單判斷蛇的head與食物的距離,蛇就非常容易把自己繞死。這時有乙個比較簡單的思路 遍歷全...