編寫智慧型演算法
編寫人工智慧程式,使得 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與食物的距離,蛇就非常容易把自己繞死。這時有乙個比較簡單的思路 遍歷全...