游戏开发论坛

 找回密码
 立即注册
搜索
查看: 28253|回复: 32

[原创] Excel潜能系列——Excel游戏2048 Einsphoton

[复制链接]

22

主题

105

帖子

463

积分

中级会员

Rank: 3Rank: 3

积分
463
发表于 2014-11-12 09:35:48 | 显示全部楼层 |阅读模式
本帖最后由 rjflx 于 2014-11-20 23:37 编辑

作者:Einsphoton

Excel潜能系列之二——2048小游戏
这个游戏,怎么说能,代码量很少,很简单,只是算法有点复杂,至少在Excel上是这样的。


关注我的微博和博客,之后会在我的博客上更新教程。
2014.11.20Ver.1.1
①修改了游戏结束检测BUG
QQ图片20141112093247.jpg


下载链接:http://pan.baidu.com/s/1sjv2kWl

关键词:Einsphoton Excel游戏 VBA游戏 2048
作者:Einsphoton
个人微博:http://weibo.com/u/2673256031 (支持请关注)

微信公众平台:GamesDesigner
002UUI0Lgy6LdBwjsTC70&690.jpg






2

主题

11

帖子

83

积分

注册会员

Rank: 2

积分
83
QQ
发表于 2014-11-12 22:51:55 | 显示全部楼层
小渣渣来捧捧场

23

主题

3388

帖子

6440

积分

论坛元老

Rank: 8Rank: 8

积分
6440
发表于 2014-11-12 23:13:29 | 显示全部楼层
本帖最后由 卡特铁角 于 2014-11-13 13:42 编辑

VBA执行效率太低了……

用来做游戏没有实用价值。同时也缺少各种图形图像的处理工具。

我之前一个项目,因为图方便,直接用excel的VBA写了一段宏来生成加密用散列表(在一个很大的范围内随机选取几万个不重复的整数),跑了一整天,晚上停电了没跑完……
后来用C按照同样的算法重新写了一个,不到半小时就跑完了。
纠正个口误——用C按同样的算法重写了一个,不到半小时就跑完——其实是说写代码的时间不到半小时,真正运行程序的时间很短(但印象中应该不止3秒——把计算结果输出到文件耗时较多)。

22

主题

105

帖子

463

积分

中级会员

Rank: 3Rank: 3

积分
463
 楼主| 发表于 2014-11-13 09:17:53 | 显示全部楼层
卡特铁角 发表于 2014-11-12 23:13
VBA执行效率太低了……

用来做游戏没有实用价值。同时也缺少各种图形图像的处理工具。

vba执行效率无高低好坏,要看用的人:
①我写的2048执行效率如何?无任何拖沓,手感良好。再看看网上其他人写的2048又如何……
②你举的那个例子,只能说明你的算法有问题,使用TrialError的循环方式去跑不相同的随机数当然效率低,并且是越到后面效率越低!
Excel自带的功能都能秒算出来你要的结果!先拉十几万的数据,然后删除重复项就行了

3

主题

78

帖子

307

积分

中级会员

Rank: 3Rank: 3

积分
307
发表于 2014-11-13 10:15:45 | 显示全部楼层
先顶后看

23

主题

3388

帖子

6440

积分

论坛元老

Rank: 8Rank: 8

积分
6440
发表于 2014-11-13 13:03:05 | 显示全部楼层
本帖最后由 卡特铁角 于 2014-11-13 13:11 编辑
rjflx 发表于 2014-11-13 09:17
vba执行效率无高低好坏,要看用的人:
①我写的2048执行效率如何?无任何拖沓,手感良好。再看看网上其他 ...

呵呵……一个解释型的语言跟编译型的比效率么……lua/python之类的脚本都比VBA快好多好多倍。

2048这种小游戏用就不用说了——太特殊。你用excel的宏写个有人机博弈功能的围棋试试?别围棋了,就五子棋吧。

再,你可以试下设计一个更NB的算法,用VBA在0~2^32范围内生成2万个随机不重复整数,看看到底要多久。再用C或者C++用同样的算法写一个对比下。这有助于你了解编译型语言跟解释型语言在效率上的差别有多大。

你也可以试下用公式拉出65535个随机数,然后再用宏去删重复项又要多久。

22

主题

105

帖子

463

积分

中级会员

Rank: 3Rank: 3

积分
463
 楼主| 发表于 2014-11-13 13:14:42 | 显示全部楼层
卡特铁角 发表于 2014-11-13 13:03
呵呵……一个解释型的语言跟编译型的比效率么……lua/python之类的脚本都比VBA快好多好多倍。

2048这种小 ...

你整天就知道vba、Python、CPP
你是策划么?不知道Excel自带删除重复项么?不知道效率很高么?
别没事就蹦出来一堆虽但厉唬人,本末倒置

23

主题

3388

帖子

6440

积分

论坛元老

Rank: 8Rank: 8

积分
6440
发表于 2014-11-13 13:15:34 | 显示全部楼层
本帖最后由 卡特铁角 于 2014-11-13 13:18 编辑
rjflx 发表于 2014-11-13 13:14
你整天就知道vba、Python、CPP
你是策划么?不知道Excel自带删除重复项么?不知道效率很高么?
别没事就 ...

你试一下我说面说的吧。
我确实不知道那个删除重复项的功能,惭愧了。之前都是自己写宏来检查的。

22

主题

105

帖子

463

积分

中级会员

Rank: 3Rank: 3

积分
463
 楼主| 发表于 2014-11-13 13:19:41 | 显示全部楼层
卡特铁角 发表于 2014-11-13 13:15
你试一下我说面说的吧。
我确实不知道那个删除重复项的功能,惭愧了。之前都是自己写宏来检查的。
...

我刚才试了一下,随机生成了10万个不重复的随机数,只用了3秒

23

主题

3388

帖子

6440

积分

论坛元老

Rank: 8Rank: 8

积分
6440
发表于 2014-11-13 13:21:47 | 显示全部楼层
rjflx 发表于 2014-11-13 13:19
我刚才试了一下,随机生成了10万个不重复的随机数,只用了3秒

可否展示下你的算法?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-2-12 15:28

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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