看板 Prob_Solve 關於我們 聯絡資訊
※ [本文轉錄自 C_and_CPP 看板 #1JcnqoJi ] 作者: noodleT (麵T) 看板: C_and_CPP 標題: [討論] 自動玩2048 時間: Fri Jun 13 23:47:59 2014 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 所對應的區間範圍? 問題大概就是以上三點吧! 另外, 能不能只靠目前的盤面(不要偷嘗試走下一步)就可以推論出最佳方向? -- 我是麵T,哩賀 http://ppt.cc/-eS5 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 118.171.110.117 ※ 文章網址: http://www.ptt.cc/bbs/C_and_CPP/M.1402674482.A.4EC.html ※ 編輯: noodleT (118.171.110.117), 06/13/2014 23:49:18
soheadsome:你可以去prob_solve或programming版 06/13 23:55
lNishan:這比較像是Prob_Solve版的範圍哦 ~ 06/13 23:56
noodleT:多謝告知有此板,那這篇討論要砍掉嗎>< 06/14 00:02
testPtt:最佳方法就是列舉所有可能查表進行囉 06/14 00:54
bleed1979:在Prob_Solve一起討論吧,我有參加比賽。 06/14 06:53
noodleT:可以請你先發個討論串嗎? 06/14 12:10
bleed1979:借轉Prob_Solve,回你的文當出發點。 06/14 12:57
※ 發信站: 批踢踢實業坊(ptt.cc) ※ 轉錄者: bleed1979 (220.135.203.156), 06/14/2014 12:58:27