智慧型蛇演算法

2021-08-14 03:27:05 字數 850 閱讀 2158

編寫智慧型演算法

編寫人工智慧程式,使得 snake 每秒自動走一步。

決定蛇行走的方向函式的偽**

// hx,hy: 頭的位置

// fx,fy:食物的位置

function wheregonext(hx,hy,fx,fy) 記錄可走的方向

// 用陣列distance[3]= 記錄離食物的距離

// 分別計算蛇頭周邊四個位置到食物的距離。h頭的位置,f食物位置

// 例如:假設輸入」a」 則distance[0] = |fx – (hx-1)| + |fy – hy|

// 如果 hx-1,hy 位置不是blank,則 distance[0] = 9999

// 選擇distance中存最小距離的下標p,注意最小距離不能是9999

// 返回 movable[p]

}

智慧型蛇的程式框架

輸出字元矩陣

while not 遊戲結束 do

wait(time)

ch=wheregonext(hx,hy,fx,fy)

case ch do

『a』:左前進一步,break

『d』:右前進一步,break

『w』:上前進一步,break

『s』:下前進一步,break

end case

輸出字元矩陣

end while

輸出 game over!!!

查閱資料認識到,可以有一條虛擬蛇去探路。

也了解了有一種bfs演算法(寬/廣度優先搜尋)來搜尋吃到食物的最短路線。

何為智慧型蛇

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

智慧型蛇初試

在完成了貪吃蛇的程式後,便想能不能設計乙個程式來 智慧型 的操控貪吃蛇,以求獲取乙個前所未有的最高分。首先,智慧型蛇得會 自己 動,這或許只用乙個迴圈就行了,但是執行迴圈的時間太短,我們得用sleep 函式來設定停頓的時間,來使其看起來像是 自動 的。其次,寫乙個函式,來判斷蛇可以向那幾個方向移動,...

貪吃蛇高階 智慧型蛇

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