ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 1937|回复: 5

[原创] 用VBA解决Fling!毛毛球游戏问题

[复制链接]

TA的精华主题

TA的得分主题

发表于 2013-10-8 16:38 | 显示全部楼层 |阅读模式
Fling!是苹果iphone系统的一个小游戏,后来也被移植到安卓系统中。游戏玩法就是通过碰撞棋盘上的小球,使最后只剩下一个球。
itune地址https://itunes.apple.com/us/app/fling!/id325815008?mt=8
android网址https://play.google.com/store/apps/details?id=com.mbgames.fling

超喜欢这个游戏,前面20多关难度都不算大,但是27关以后就没那么容易解决了。国庆期间在家无事用excel宏写了个解题程序。有兴趣的可以看看。为了显示直观、漂亮使用了excel2007的新版条件格式(图标集)功能。稍稍修改,在excel2003/97也能用。
宏代码没有进行什么优化,所以28个以上的球,会需要运行很久才结束。运行期间可以按ctrl+Break暂停。

华为网盘附件:
【华为网盘】 Fling.rar
(121.85K)

TA的精华主题

TA的得分主题

发表于 2013-10-8 16:46 | 显示全部楼层
2013版下 点开始后 点哪都没反应啊

咋回事?

TA的精华主题

TA的得分主题

发表于 2013-10-9 10:19 | 显示全部楼层
几点建议:
1、简要说明游戏规则,看你代码,我猜测是棋子可像跳棋一样跳过一个棋子碰其后面的棋子,但未理解为何能最终只剩一个棋子
2、如有可能,编写代码可使得能手动模拟玩游戏
3、简要描述代码的数学模型,我连行列号都没看明白
4、除读取初始状态和输出结果外,不要再读写Excel的Sheet表单,所有计算、缓存均在内存中完成,应该很容易使用数组模拟的,可大幅提高计算速度。我很怀疑你所谓27关以后难得说法,是指计算时间过长。
5、貌似是深度优先的遍历计算,貌似没有任何AI,可以设计一个评估函数来给下一步的各种可能打分,设计的好可以大幅提高速度
6、题目的预设保存可以采用一串数字,比如:如果棋盘大小是8行x7列固定的话,可以用7个2位16进制数,每一列可看成是一个8位的二进制数,这样一个14个字符的字符串就是一道题目。

以上供参考~

TA的精华主题

TA的得分主题

 楼主| 发表于 2013-10-9 12:39 | 显示全部楼层
运算量比较大,要多等一会才会出结果。
游戏规则建议自己下载到手机玩玩就知道了。或者到官方网站去看介绍。这里我就不详细介绍了。

TA的精华主题

TA的得分主题

 楼主| 发表于 2013-10-9 12:56 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
lee1892 发表于 2013-10-9 10:19
几点建议:
1、简要说明游戏规则,看你代码,我猜测是棋子可像跳棋一样跳过一个棋子碰其后面的棋子,但未理 ...

1,不是跳棋,是碰撞
2,考虑过,暂没时间弄。
3,抱歉确实没啥标注,因为我觉得代码很简单。单元格A1就是坐标原点,(横向坐标,纵向坐标):移动方向
4,确实不需要放在表单中,但写代码时为了测试排错方便所以用单元格。增加了运行期间屏蔽屏幕更新的,速度还能接受。
5,算法优化时可以考虑
6,考虑过这种方式,后来写代码时为了简单就没弄了。很久没碰宏了,我的vba忘得差不多了。磕磕碰碰花了一天时间,熟悉语法,慢慢写,慢慢调试完成的。确实还有很多改进优化空间,但基本能够满足我自己使用要求了。
喜欢玩的朋友可以拿去,再改进或者重写一个可玩的游戏,应该不难。
最后,谢谢你的建议!

TA的精华主题

TA的得分主题

发表于 2013-10-9 13:35 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
huyutian 发表于 2013-10-9 12:56
1,不是跳棋,是碰撞
2,考虑过,暂没时间弄。
3,抱歉确实没啥标注,因为我觉得代码很简单。单元格A1就 ...

哦,您这样自娱自乐的实在是没有必要放上来,呵呵~
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-8-24 14:47 , Processed in 0.033191 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表