Fw: [讨论] 自动玩2048

楼主: bleed1979 (十三)   2014-06-14 12:58:27
※ [本文转录自 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 所对应的区间范围?
问题大概就是以上三点吧!
另外,
能不能只靠目前的盘面(不要偷尝试走下一步)就可以推论出最佳方向?
作者: 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