消灭星星(PopStar)游戏的自动处理

最近迷上了一个小游戏,消灭星星,想到能否用计算机自动处理,一开始觉得很容易,但实际着手后发现比较困难。其中难点在于:

l  变化太多,无法在短时间内穷举。

l  局部影响全局,但又不能决定全局。局部最优不代表全局最优

l  对每个状态没有太好的评估函数,即我们无法简单的比较那个状态好,那个状态差。

在这几点上,POPSTAR和围棋很相似,当然规则上比围棋要简单多了,维度上也比围棋小,可以视为简化的围棋。在CSDN网站上发现有人有同样的兴趣,但后来就没有人回复了。

http://bbs.csdn.net/topics/390145455?page=1#post-395243752

 

我做了一个小程序,大致的原理是,用四叉树找到所有可消除的块,然后根据块的大小,位置,颜色得到评估指标,并向下搜索一层,根据下一层的状态再进行评估排序,得到评估比较高的状态再进行处理。

 

由于还没有实现更自动化的方法,因此整个游戏的流程如下:

手机助手截屏-》自动图像识别生成文件-》自动处理文件-》手工操作手机完成,但是后来由于手工输入错误,导致没有达到20万分就结束了,一共进行了54关,时间限制为每题10秒的时间。每个题目的平均分大约为3800,还不足以无限续关,但一般可以达到20万分左右,可以向别人炫耀一下了,呵呵(反正周围的人很少能自己玩到10万分,而用这个程序理论上可以到40万分)。

 

题目放在了http://download.csdn.net/detail/firefight/5889619,有兴趣的可以自己编程试试。

 

消除星星的规则在上面的第一个链接中有,补充几点如下:

维度为10*10,颜色种类五种,分别为红,黄,绿,蓝,紫

同颜色的连接在一起的块可以消除,消除的分数为5*(N^2),N为消除的块数

剩余BONUS的公式为2000-20*(N^2),N为剩余的块数,N<10(N>=10后BONUS为0)

过关分数要求为

1000

3000

6000

8000

10000

13000

15000

17000

20000

20000以上都是每关增加4000分,因此如果平均分为4000分的话,理论上可以无限续关。

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值