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 所對應的區間範圍?
問題大概就是以上三點吧!
另外,
能不能只靠目前的盤面(不要偷嘗試走下一步)就可以推論出最佳方向?