something關於智慧型蛇

2021-08-14 02:43:35 字數 1219 閱讀 4465

之前已經寫了貪吃蛇,今天的作業是智慧型蛇。

認真說起來其實兩者差不多,只不過智慧型蛇更聰明一點,可以自己找到路線罷了。

兩者的主要不同,也是智慧型蛇的主要難點在於以下兩點

1 每秒鐘清屏並且 printf

2 蛇自動尋找路線,能吃到食物並且不會與蛇身相撞

第一點其實也不難

system ( 「cls」 ); 就能做到清屏;

而unistd.h 標頭檔案下有乙個叫做sleep的函式sleep();可以使系統按照你想要的定時地列印

值得注意的地方是括號裡面的單位是毫秒。

比如說

sleep(1000);

prinitf(「hello , c」);

每秒鐘系統就會列印一次 hello , c。

而蛇怎麼自動找食物並且避免與蛇身相撞呢?

第二點就有些複雜了

關於怎樣使得智慧型蛇自己尋找合適的路線這一點其實有很多種演算法,也有在不同情況選擇不同走法的精妙方案,本人比較小白,所以在網上查了些資料,大致的想法其實就是

1 根據食物位置確定總體方向。

2 依據演算法決定最短路線

而路線的決定其實是最複雜的地方

我們可以先分析貪吃蛇遊戲進行過程中會遇到一些怎麼的情況:

蛇頭能直接無障礙地找到食物

蛇頭不能直接無障礙地找到食物,但能無障礙地找到蛇尾

蛇頭不能找到蛇尾也不能找到食物

偽**大概就是這樣子

// 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]

根據大佬的**終於弄懂了。。。還蠻有成就感的

關於字元遊戲 智慧型蛇

首先我們先看我從網上找的一條智慧型蛇 來自網際網路 如何才能做出能讓其自己運動且至少不會很快死的程式 t t 以下給出實驗情況 一 實驗目的 了解 演算法 與 智慧型 的關係 通過演算法賦予蛇智慧型 了解 linux io 設計的控制 二 實驗環境 linux only.你可以選擇 unbutu c...

智慧型蛇演算法

編寫智慧型演算法 編寫人工智慧程式,使得 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 最小且不會撞到牆或者是...