「2048」遊戲怎麼通關?

2048 遊戲鏈接。

我只搞到1024。

求算神!!


為了寫這個問題我專門花了一天時間打通關了它。。
還算是有一點經驗。。
一開始的時候要不停的橫豎滑動,把方塊都向一個角里聚,直到不動為止,我習慣聚集在右下角,就以此為例。

就是橫著一下豎著一下,會大致形成一個三角形,這時最右下的格里一般已經有一個較大的數(比如64)。然後看看最下面一排是不是滿的,不滿的話盡量保持最大數不動,將最下面一層填滿(填滿的意思是左右滑動時這一層不會動)。

然後橫豎橫豎,湊出一些稍微大點的數了向下合併,同時注意最下層不要動,有橫向合併的話先填滿最下層再管上面三層,如此往複,最下層最好的狀態是成一個遞增的數列(比如8,16,32,64)。

持續進行一直到最後,最後時最下面一層應該是256,256,512,1024。然後輕鬆過關~
手機碼字好費勁⊙▽⊙。。不知道能不能發圖。。等回頭上電腦寫個詳細教程。。


正好玩了一周末,打到了4096,這個東西實在太費時間了,每個數都是上個數的2倍,2的n次方關係,基本原則就是 王屹峰 所說的了,最大的數在最下面一排的最角落裡,2048之前的狀態應該是,最下面一排是 1024 512 256 256. 絕對不要向上移動(你要是喜歡把大數全放上邊,就不要向下移動),為了保證大數在最左側,最下面一排一定要在4個數全滿的情況下,才可以向右移動。當然有時候不得已,沒辦法,只能右移或上移的時候,就要看看運氣和當時所處的情況了。


沒有數學證明不過基本上就是在最下面兩排按二進位遞增的順序堆起來,然後保持當前最大的數字在角上不動,盡量只在兩個方向上移動,試了幾次反正都能贏╮(╯▽╰)╭


控制台輸入:

GameManager.prototype.addRandomTile = function () {

if (this.grid.cellsAvailable()) {

var value = 1024;

var tile = new Tile(this.grid.randomAvailableCell(), value);

this.grid.insertTile(tile);

}

};


剛剛用了差不多半小時的時間給通關了,方法上面也有提到過 我覺得最簡單的還是盡量少按一個方向鍵 迫不得已的情況下再按 保證有一列或一行的固定程度。


使用火狐的人還真不少~哈哈哈,2048是個讓人愛恨交加的遊戲。


AI程序作者給出的答案,可供參考:

原文:2048遊戲的最佳演算法是?來看看AI版作者的回答

stackoverflow

----------------------------

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

當前,這套運行在我筆記本瀏覽器的javascript程序能夠達到90%左右的勝率,每次移動的思考時間是100毫秒。儘管不是最完美,但做得還不賴。

既然這個遊戲是一個離散狀態空間,信息完備的回合制遊戲,類似於象棋和國際跳棋,那麼我就使用了針對這些遊戲的證明過的行之有效的方法。一套叫minimax search的演算法,結合了alpha-beta pruning。既然已經有很多信息解釋了這套演算法,那麼我就僅談談我在static evaluation function中使用到的兩個重要概念。這將會把一些人在這裡表達的直覺形式化。

單調性(Monotonicity)

這個概念保證方塊的值沿著上下左右方向的,要麼增加,要麼減少。這個概念單獨地解釋了一個大家提到的直覺,值較大的方塊應該聚集到某一個角落。這將有助於阻止值小的方塊被孤立起來,也將讓面板保持良好的組織結構,使得值小的方塊漸進層疊式的並逐步合併為值大的方塊。

下圖是一個有完美單調性格子的截屏。我通過運行eval函數被設置為忽略其它概念的演算法獲得,僅僅考慮單調性。

平滑性(Smoothness)

上面的概念傾向於構造值遞減的結構,但如要合併,相鄰的方格值必須相同。因此,平滑性衡量相鄰方格值的差,並嘗試減少差。

Hacker News上的一個評論者用圖論給出了一個平滑性的有趣解釋。來源於2048的一個優秀分支。

下圖是個有完美單平滑性的截屏。

空閑方塊(Free Tiles)

最後,有一個針對空閑格子過少的懲罰。畢竟面板過於擁擠的時候,選擇受限且很快會被用完。

就是這樣。掃描遊戲格子,同時優化以上標準,這會產生相當好的表現。與明確硬編碼的移動策略相比,這種使用通用性的方法有一個優點,這種演算法可以找到有趣且難以預料的解決方案。如果你觀察它運行,它經常會做出一些驚奇但有效的移動,比如突然轉向一個相反的牆或者角落。

修改

這是該方法強大能力的一個展示。我拿掉了方格值大小的限制(到2048之後還可以繼續運行,下圖是8次嘗試中最好一次的截屏,是的,那可是一個4096外加一個2048),那意味著在同一個面板上它完成了3次困難的2048方塊。


理論上是可以一直玩下去的 直到8192應該也可以 主要還是最大的一定要固定在某個角落


。。。無聊地山寨了一個2048安卓版,樓主看看吧2048愛消除V1.4_益智休閑


推薦閱讀:

俠客風雲傳觸發乞丐結局的條件是什麼?
艦隊collection遊戲中有哪些不為人知的小細節需要注意?
P社遊戲鋼鐵雄心4里有什麼實用但冷門的技巧?
玩好2D格鬥遊戲最需要注重什麼?

TAG:遊戲攻略 | 2048小遊戲 |