[討論] 自動玩2048

作者: noodleT (麵T)   2014-06-13 23:47:59
2048 BOT 應該是今天截止交件 ~ (小弟我沒參加)
不知道大家是怎樣決定出最好的一步?
我的做法是:
複製四組盤面 → 上下左右各走一次 → (累加)計算盤面分數 → 回傳方向
↑ │
└──── 深度N層 ───┘
問題(先考慮 N=1 就好):
1.因為對方會隨機在盤面上放上 2、4 ,此方法上下左右僅各走一次,
無法表現出我方最不利的狀況。
2.計算分數如何最佳化?
總分考慮的點有:
左上角是否是最大的數字,a 分
●○ 黑圈●=?白圈○ 或 黑圈 =? 白圈*2,b 分

盤面為空格的數目,c 分
a、b、c之間的比例應該為?
總分 = a+b+c ,或總分 = (a+b)*(c^2)?
3.(計算分數的方法二)枚舉出多組較佳盤面,計算相關性系數:
枚舉的盤面:
4 4 3 2
4 3 2 1
3 2 1 1
2 1 1 1 ,4代表很大的數字、1代表很小
遊戲盤面:
128 064 064 002
128 064 016 000
016 008 004 008
002 000 000 002
↓將遊戲盤面轉換成 1~4 的盤面。
128 轉成 4
064 轉成 4
032 轉成 3
如此等等......
這裡我是想用類似於模糊控制(模糊區間)的概念來做,但又牽扯到:
a.最大數字是 2048 ,次大數字是 64
b.最大數字是 2048 ,次大數字是 1024
a、b 這兩個狀況又很不一樣,這裡遇到的問題是:
如何切割 1、2、3、4 所對應的區間範圍?
問題大概就是以上三點吧!
另外,
能不能只靠目前的盤面(不要偷嘗試走下一步)就可以推論出最佳方向?
作者: soheadsome (師大狗鼻哥)   2014-06-13 23:55:00
你可以去prob_solve或programming版
作者: lNishan (紫小霓)   2014-06-13 23:56:00
這比較像是Prob_Solve版的範圍哦 ~
作者: noodleT (麵T)   2014-06-14 00:02:00
多謝告知有此板,那這篇討論要砍掉嗎><
作者: testPtt (測試)   2014-06-14 00:54:00
最佳方法就是列舉所有可能查表進行囉
作者: bleed1979 (十三)   2014-06-14 06:53:00
在Prob_Solve一起討論吧,我有參加比賽。
作者: noodleT (麵T)   2014-06-14 12:10:00
可以請你先發個討論串嗎?
作者: bleed1979 (十三)   2014-06-14 12:57:00
借轉Prob_Solve,回你的文當出發點。

Links booklink

Contact Us: admin [ a t ] ucptt.com