ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[分享] 分享一个使用VBA编写的小游戏"呱呱消方块"

[复制链接]

TA的精华主题

TA的得分主题

发表于 2024-3-11 16:26 | 显示全部楼层 |阅读模式
本帖已被收录到知识树中,索引项:娱乐和游戏应用



GIF 2024-3-11 16-12-36.gif

呱呱消方块介绍
呱呱消方块是一个用Excel VBA编写的小游戏。
很多年前,在ExcelHome论坛中看到一个打豆豆的游戏,是一个Excel文件,打开就能玩。闲来没事的时候,经常会打开玩几盘。 今年过年前,又一次打开了这个游戏,可能是因为运行环境的变化(现在的环境win10+office2021 64位),打开游戏后发现豆豆的显示变得很小,而且因为有一种颜色的豆豆我老是看不清,影响我“破记录”,于是就想动手调整一下,把豆豆调大些,改一下不好认的颜色。动手后发现改起来并不容易。于是产生了自己重写一个的想法。今年过年放假期间动手在Excel工作表中使用条件格式做了一个。 因为儿子小名叫呱呱,所以取名“呱呱消方块”,就当送给他的小礼物。
代码开源,没有任何限制,如果能给各位写代码提供一些启发的话,我会非常高兴。
编写说明
游戏完全使用VBA开发,没有调用API函数,没有使用窗体,没有使用控件,因此兼容性问题应该不太多。游戏显示依赖Excel单元格的条件格式,因为一个单元格设置有3个以上的条件格式,因此Excel2007以前的版本应该运行不了。 因为游戏本身很简单,所以主体部分很快就完成了。但对于游戏计时部分一直做得不是太好,因为Excel VBA不支持异步,无法直接实现游戏计时的功能,一般的做法是调用API,但我不希望去封装API,最终找到一个Excel的Application.OnTime方法,可以指定一定时间后执行某一过程,通过这一方法,变相的完成了计时部分的功能。 第一次写这种小游戏,没有什么经验,虽然程序主体部分实现非常顺序,但在一些如分数显示等开始觉得不重要的部分,前期没有好好规划,遇到了直接写,导致这部分代码逻辑有点乱。这也算是这次的一种收获吧,以后一定要先规划,再动手。 另外,测试过种中一些意想不到的操作引起的程序的错误,也花了一些时间去解决。
游戏方法
游戏默认在一个15X23的区域中随机分布0-7八个数字,每种数字对应一种颜色。0表示空(灰色背景)1-7表示七种颜色的色块,色块共100组,计200个。 当点击(选中)游戏区域的单元格,若单元格为0(灰色)时,以该单元格为中心,沿上下左右四个方向最近的四个色块中,相同色块数多余1个时,将得2、3或4分,同时这些单元格将消除。如四个色块均不同,或直接点击色块,则扣4分。
已知问题
1、当全选工作表的所有单元格时,会出现溢出错误。主要与Application.Intersect方法有关,但没找到好的解决方法。
2、当游戏未停止前,非正常退出,可能会导致Application.OnTime的定时器没有清除,导致计时器错误。



呱呱消方块.rar

272.15 KB, 下载次数: 57

评分

2

查看全部评分

TA的精华主题

TA的得分主题

发表于 2024-3-11 17:10 来自手机 | 显示全部楼层
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-12-4 01:11 , Processed in 0.044550 second(s), 13 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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