1.76传奇手游版_超变态传奇单职业手游排行_我本沉默执迷古镇传奇_我本沉默隐藏地图攻略

游戲鳥(niǎo)手游網(wǎng),重度移動(dòng)游戲垂直門戶!

最新游戲 | 最新軟件 | 游戲更新 | 軟件更新 | 推薦游戲 | 推薦軟件 | 合集排行
您的位置: 游戲鳥(niǎo)新聞資訊游戲產(chǎn)業(yè) → 《2048》的最佳算法? 看AI版作者的回答

《2048》的最佳算法? 看AI版作者的回答[多圖]

2024-05-02 10:54:25 小編:游戲鳥(niǎo)手游網(wǎng)

2048游戲的最佳算法是?來(lái)看看AI版作者的回答

問(wèn)題 by nitish712

我最近偶然發(fā)現(xiàn)一款叫2048的游戲。你需要通過(guò)上下左右方向鍵來(lái)移動(dòng)合并值相同的方塊(Title)。每一次移動(dòng)之后,一個(gè)值為2或者4的新方塊會(huì)隨機(jī)出現(xiàn)在某個(gè)空位置。如果所有位置都塞滿方塊,并且沒(méi)有值相同的方塊可以合并的時(shí)候,游戲結(jié)束。游戲的目標(biāo)是合并出一個(gè)值為2048的方塊。

我需要遵循一套定義良好的策略來(lái)實(shí)現(xiàn)這個(gè)目標(biāo)。所以我想到寫個(gè)程序來(lái)實(shí)現(xiàn)。我當(dāng)前的算法如下:

 

我所做的是,在任何時(shí)刻,我都嘗試合并值為2或者4的方塊,也就是我會(huì)嘗試讓值為2和4的方塊越少越好。如果我嘗試那么做,其它的方塊會(huì)自動(dòng)的合并,看起來(lái)像是個(gè)好策略。

但是當(dāng)我真正使用這套算法的時(shí)候,我大概只能得到4000分,游戲就結(jié)束了。游戲的最高分應(yīng)該是20000多點(diǎn),遠(yuǎn)超我當(dāng)前的分?jǐn)?shù)。有比上面策略更好的算法嗎?

最佳回答 by ovolve

我是AI程序的作者,前面也有人提到AI程序。你可以看AI版游戲,或者直接閱讀源代碼。

當(dāng)前,這套運(yùn)行在我筆記本瀏覽器的javascript程序能夠達(dá)到90%左右的勝率,每次移動(dòng)的思考時(shí)間是100毫秒。盡管不是最完美,但做得還不賴。

既然這個(gè)游戲是一個(gè)離散狀態(tài)空間,信息完備的回合制游戲,類似于象棋和國(guó)際跳棋,那么我就使用了針對(duì)這些游戲的證明過(guò)的行之有效的方法。一套叫minimax search的算法,結(jié)合了alpha-beta pruning。既然已經(jīng)有很多信息解釋了這套算法,那么我就僅談?wù)勎以趕tatic evaluation function中使用到的兩個(gè)重要概念。這將會(huì)把一些人在這里表達(dá)的直覺(jué)形式化。

單調(diào)性(Monotonicity)

這個(gè)概念保證方塊的值沿著上下左右方向的,要么增加,要么減少。這個(gè)概念單獨(dú)地解釋了一個(gè)大家提到的直覺(jué),值較大的方塊應(yīng)該聚集到某一個(gè)角落。這將有助于阻止值小的方塊被孤立起來(lái),也將讓面板保持良好的組織結(jié)構(gòu),使得值小的方塊漸進(jìn)層疊式的并逐步合并為值大的方塊。

下圖是一個(gè)有完美單調(diào)性格子的截屏。我通過(guò)運(yùn)行eval函數(shù)被設(shè)置為忽略其它概念的算法獲得,僅僅考慮單調(diào)性。

 

 

平滑性(Smoothness)

上面的概念傾向于構(gòu)造值遞減的結(jié)構(gòu),但如要合并,相鄰的方格值必須相同。因此,平滑性衡量相鄰方格值的差,并嘗試減少差。

Hacker News上的一個(gè)評(píng)論者用圖論給出了一個(gè)平滑性的有趣解釋。來(lái)源于2048的一個(gè)優(yōu)秀分支。

下圖是個(gè)有完美單平滑性的截屏。

 

[1] [2] 下一頁(yè) 在本頁(yè)閱讀全文

  • 相關(guān)游戲
  • 同廠商游戲
  • 最新游戲
手游排行 熱門專區(qū) 開(kāi)服開(kāi)測(cè)
網(wǎng)游排行榜 經(jīng)典應(yīng)用 新游開(kāi)測(cè)表
單機(jī)排行榜 單機(jī)下載 手游開(kāi)服表
評(píng)分排行榜 熱門手游

皖公網(wǎng)安備 2024050484號(hào)