對於腦力鍛鍊我決定嘗試和解決氣泡破碎遊戲許多蜂窩電話以及這裏的例子發現:Bubble Break Game泡泡破碎機遊戲解算器比貪婪更好嗎?
- 隨機(N,M,C)板由N行×M個使用C顏色的列
- 目標是通過挑選最終導致最高分數的氣泡組序列來獲得最高分數
- 氣泡組是具有相同顏色且相鄰的2個或更多個氣泡在x或y方向上。對角線不計算
- 當一個組被挑選出來時,氣泡消失,任何孔都從上面的第一個氣泡中填充,即向下移動,然後通過向右移動來填充任何孔
- 氣泡組分數= n *( N - 1)其中n是氣泡的氣泡羣
第一種算法的數量是探索通過板行通過柱拾取氣泡組要去由行和列的簡單窮舉遞歸算法。一旦挑選了氣泡組,我們創建一個新的電路板並嘗試解決該電路板,遞歸降序
我正在使用的一些想法包括標準化memoization。一旦董事會得到解決,我們將董事會和最佳成績存儲在記事表中。
我創建了一個prototype in python,它顯示(2,15,5)電路板需要在大約3秒內解決8859個電路板。 (3,15,5)板在服務器上50分鐘內需要12,384,726塊板。解算器速率爲〜3k-4k板/秒,並且隨着記憶搜索需要更長時間而逐漸減小。記憶表格增長至5,692,482張,達到6,713,566次。
除了窮舉搜索之外,還有哪些其他方法可以產生高分?
我沒有看到任何明顯的分而治之的方法。但趨向于越來越大的氣泡組似乎是一種方法
感謝大衛洛克發佈的紙張鏈接,上面談到一個窗口解算器,它使用恆定深度的前瞻啓發式。
我實際上認爲解決這個同樣的問題,作爲一種業餘愛好。 在我的Windows Mobile手機中投入了超過數千輪的遊戲後,從蝙蝠身上挑選更大的泡泡羣並不是最好的方法。我發現你想試圖通過擺脫將它們分開的小團體來將大羣體合併在一起。 – Larsenal 2009-10-08 23:37:44
是的,這絕對是我正在考慮的一種方法。 – Gregory 2009-10-09 05:51:25