作者bleed1979 (十三)
看板Prob_Solve
标题Fw: [讨论] 自动玩2048
时间Sat Jun 14 12:58:27 2014
※ [本文转录自 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://webptt.com/cn.aspx?n=bbs/C_and_CPP/M.1402674482.A.4EC.html
※ 编辑: noodleT (118.171.110.117), 06/13/2014 23:49:18
1F:推 soheadsome:你可以去prob_solve或programming版 06/13 23:55
2F:→ lNishan:这比较像是Prob_Solve版的范围哦 ~ 06/13 23:56
3F:→ noodleT:多谢告知有此板,那这篇讨论要砍掉吗>< 06/14 00:02
4F:→ testPtt:最佳方法就是列举所有可能查表进行罗 06/14 00:54
5F:推 bleed1979:在Prob_Solve一起讨论吧,我有参加比赛。 06/14 06:53
6F:→ noodleT:可以请你先发个讨论串吗? 06/14 12:10
7F:推 bleed1979:借转Prob_Solve,回你的文当出发点。 06/14 12:57
※ 发信站: 批踢踢实业坊(ptt.cc)
※ 转录者: bleed1979 (220.135.203.156), 06/14/2014 12:58:27