《2048》的最佳算法? 看AI版作者的回答
問題 by nitish712
我最近偶然發(fā)現(xiàn)一款叫2048的游戲。你需要通過上下左右方向鍵來移動合并值相同的方塊(Title)。每一次移動之后,一個值為2或者4的新方塊會隨機出現(xiàn)在某個空位置。如果所有位置都塞滿方塊,并且沒有值相同的方塊可以合并的時候,游戲結束。游戲的目標是合并出一個值為2048的方塊。
我需要遵循一套定義良好的策略來實現(xiàn)這個目標。所以我想到寫個程序來實現(xiàn)。我當前的算法如下:
我所做的是,在任何時刻,我都嘗試合并值為2或者4的方塊,也就是我會嘗試讓值為2和4的方塊越少越好。如果我嘗試那么做,其它的方塊會自動的合并,看起來像是個好策略。
但是當我真正使用這套算法的時候,我大概只能得到4000分,游戲就結束了。游戲的最高分應該是20000多點,遠超我當前的分數(shù)。有比上面策略更好的算法嗎?
最佳回答 by ovolve
我是AI程序的作者,前面也有人提到AI程序。你可以看AI版游戲,或者直接閱讀源代碼。
當前,這套運行在我筆記本瀏覽器的javascript程序能夠達到90%左右的勝率,每次移動的思考時間是100毫秒。盡管不是最完美,但做得還不賴。
既然這個游戲是一個離散狀態(tài)空間,信息完備的回合制游戲,類似于象棋和國際跳棋,那么我就使用了針對這些游戲的證明過的行之有效的方法。一套叫minimax search的算法,結合了alpha-beta pruning。既然已經有很多信息解釋了這套算法,那么我就僅談談我在static evaluation function中使用到的兩個重要概念。這將會把一些人在這里表達的直覺形式化。
單調性(Monotonicity)
這個概念保證方塊的值沿著上下左右方向的,要么增加,要么減少。這個概念單獨地解釋了一個大家提到的直覺,值較大的方塊應該聚集到某一個角落。這將有助于阻止值小的方塊被孤立起來,也將讓面板保持良好的組織結構,使得值小的方塊漸進層疊式的并逐步合并為值大的方塊。
下圖是一個有完美單調性格子的截屏。我通過運行eval函數(shù)被設置為忽略其它概念的算法獲得,僅僅考慮單調性。
平滑性(Smoothness)
上面的概念傾向于構造值遞減的結構,但如要合并,相鄰的方格值必須相同。因此,平滑性衡量相鄰方格值的差,并嘗試減少差。
Hacker News上的一個評論者用圖論給出了一個平滑性的有趣解釋。來源于2048的一個優(yōu)秀分支。
下圖是個有完美單平滑性的截屏。
空閑方塊(Free Tiles)
最后,有一個針對空閑格子過少的懲罰。畢竟面板過于擁擠的時候,選擇受限且很快會被用完。
就是這樣。掃描游戲格子,同時優(yōu)化以上標準,這會產生相當好的表現(xiàn)。與明確硬編碼的移動策略相比,這種使用通用性的方法有一個優(yōu)點,這種算法可以找到有趣且難以預料的解決方案。如果你觀察它運行,它經常會做出一些驚奇但有效的移動,比如突然轉向一個相反的墻或者角落。
修改
這是該方法強大能力的一個展示。我拿掉了方格值大小的限制(到2048之后還可以繼續(xù)運行,下圖是8次嘗試中最好一次的截屏,是的,那可是一個4096外加一個2048),那意味著在同一個面板上它完成了3次困難的2048方塊。
以上就是《2048》的最佳算法? 看AI版作者的回答全部內容,希望對你有幫助。想查找更多游戲資訊,歡迎持續(xù)關注游戲鳥查看。
-
- 手游《2048》視頻攻略 不想拿高分都難哦
- 火焰術士2024-05-05 09:57:23
-
- 冷看山寨的《2048》:一場癌細胞的勝利
- 游戲獵人2024-04-03 13:16:24
-
- 2048朝代版益智休閑和歷史結合的游戲
- 爐石獵手2024-03-22 00:22:35
-
- 《2048》開發(fā)商新作《英雄跑跑》上架
- 鍵盤鋼琴手2024-03-17 06:05:56
-
- 手游分析:益智手游《2048》為何逆天紅
- 火焰術士2024-01-31 23:46:56
-
- 人氣益智游戲升級版《2048精裝版》上架
- 爐石獵手2024-01-22 23:55:51
-
- 因簡單而火爆 數(shù)字益智手游《2048》攻略
- 鍵盤鋼琴手2023-06-30 06:18:22
-
- 手游《黑暗光年》超凡格斗宣傳片第一部
- 游戲獵人2023-09-17 09:58:50
-
- 手游IP市場調查:授權金額上漲似北京房價
- 燃燒軍團2024-03-11 00:38:20
-
XXL猛漢特區(qū)
XXL猛漢特區(qū)是一款設定于幻想大陸WOOFIA的猛漢題材策略戀愛冒險手游,融合魔幻、現(xiàn)代與科幻風格,打造出一個人類、獸人、亞人與異種共存的綺麗世界。玩家將在充滿熱血與情感的旅程中,與身懷絕技、性格各異的猛男角色結識、戰(zhàn)斗、互動,逐步建立專屬小隊,并在輕松幽默又不乏深度的劇情中展開一場專屬羈絆故事。游戲采用策略卡牌+養(yǎng)成系統(tǒng),搭配多樣親密互動機制,為你帶來沉浸式猛漢戀愛體驗??靵黹_啟屬于你的WOOFIA冒險旅程! -
The Past Within安卓版
The Past Within安卓版為玩家們帶來了全新的逃脫模式和玩法,在這里也會展現(xiàn)出屬于你自己的風格,游戲中還有更多不一樣的精彩對決,每個玩家都會在這里掌握更多的樂趣,在玩法上也可以為你帶來更多的驚喜,讓每個玩家都可以自己這里找到適合自己的模式和玩法,體驗上也可以不斷地升級。 -
英勇之地
英勇之地是玩法多樣且充滿挑戰(zhàn)的冒險游戲,將生存與競爭完美融合。在怪物肆虐的廣闊地圖上,英勇之地手游下載玩家需要尋找武器和裝備,逐步提升戰(zhàn)斗力。越是危險的區(qū)域,隱藏的寶藏就越豐厚,但也意味著更大的風險。英勇之地手游中不僅要對抗強大的怪物,還需提防其他玩家的突襲,步步為營才能生存到最后。英勇之地手機版游戲支持多人聯(lián)機,玩家可以選擇合作守護地圖資源,也可以進行PVP對決。除了經典的生存模式,英勇之地手游還結合了吃雞玩法。 -
方塊特工中文版
方塊特工中文版是一款融合了暗黑地牢風格與roguelike玩法的橫版射擊手游,采用肉鴿式的成長機制,每一次挑戰(zhàn)都不盡相同。游戲中你將扮演獨特的方塊角色,在荒蕪異形戰(zhàn)場中抵御源源不斷的怪物來襲。通過擊敗敵人獲取經驗與材料,自由選擇上百種武器和屬性增益,逐步強化角色,體驗緊張刺激的射擊戰(zhàn)斗。無論是火焰噴射器、沖鋒槍還是法杖和石頭,每一把武器都擁有獨特的戰(zhàn)斗體驗。喜歡地牢+肉鴿風格的玩家不容錯過! -
千萬別開門
千萬別開門是一款能夠給玩家?guī)砣の端奚崦半U闖關的休閑小游戲,趣味的玩法將在這個卡通世界里給玩家?guī)砭鼠w驗,不斷的去完成游戲之中的任務,解鎖更多的玩法,每一個玩家都可以在游戲之中去進行挑戰(zhàn),完成任務,解鎖更多的內容和玩法。 -
喵喵甜品店
喵喵甜品店,又名Meow Meow Bakery,是畫風可愛治愈的甜品店經營模擬類手游。喵喵甜品店適合喜歡模擬經營的玩家下載游玩,玩家可從中享受慢節(jié)奏的經營養(yǎng)成,打造專屬甜品店。玩家還可在喵喵甜品店游戲中體驗與超多可愛貓咪相處的美妙時光,感受溫馨輕松的氛圍,適合碎片時間游玩,放松身心。 -
了不起的修仙模擬器妖族崛起游戲手機版安裝包
了不起的修仙模擬器妖族崛起游戲是一款非常有趣的模擬修真游戲,在這款游戲中加入了全新的玩法,你將扮演妖族來發(fā)展你的族群,在這個未知的仙俠大陸上不斷的探索更廣大的天地,和一些名門正派進行戰(zhàn)斗,將他們的宗門掠奪一番,使你的妖族同伴能夠變得更加的強大,讓你能夠輕松的統(tǒng)治這片廣闊的仙境大地。 -
紙嫁衣8千子樹
紙嫁衣8千子樹是充滿東方詭異氣息的中式懸疑解謎游戲,延續(xù)了“紙嫁衣”系列一貫的恐怖美學與劇情深度。紙嫁衣8千子樹下載玩家將在這部作品中再次踏上熟悉而神秘的奘鈴村,與幾位曾經的老朋友一同揭開塵封往事的真相。紙嫁衣8千子樹游戲共設五大章節(jié),結構緊湊、節(jié)奏把控得當,通過大量的民俗元素與象征意象,營造出壓抑又令人著迷的氛圍。紙嫁衣8千子樹下載玩家解謎過程結合劇情演繹,層層推進,引導玩家逐步靠近隱藏的核心秘密。 -
代號血戰(zhàn)國際服
代號血戰(zhàn)國際服是一款結合Roguelike與大逃殺玩法的第一人稱射擊手游,支持最多50人在線激戰(zhàn),玩家可以選擇具備獨特技能的戰(zhàn)術干員,在動態(tài)天氣戰(zhàn)場中進行策略作戰(zhàn)。游戲以現(xiàn)金收集、重生復仇、終極槍械自定義等機制打造高自由度玩法,極致還原真實射擊體驗,并融合roguelike要素增加耐玩度。支持組隊開黑、角色技能搭配、戰(zhàn)術核心升級,喜歡緊張刺激FPS手游的玩家不容錯過! -
沙勒的五夜后宮2
沙勒的五夜后宮2(Five Nights at Schale 2 Forebod)手機版是由B站UP主【游戲開發(fā)部的小筏】自制的蔚藍檔案恐怖游戲,融合了經典的生存逃脫玩法,并在氛圍塑造和關卡設計上進行了創(chuàng)新。沙勒的五夜后宮2下載玩家將在陰森詭異的環(huán)境中,面對各種未知的危險,需要運用智慧與勇氣,在緊張刺激的追逐中尋找生機。沙勒的五夜后宮2游戲內含豐富的關卡,每一夜都隱藏著新的挑戰(zhàn),考驗玩家的觀察力與反應速度。