Excel怎么玩扫雷?成品及制作思路分享!

您所在的位置:网站首页 永中表格制作表格 Excel怎么玩扫雷?成品及制作思路分享!

Excel怎么玩扫雷?成品及制作思路分享!

2024-04-04 19:46| 来源: 网络整理| 查看: 265

Excel怎么玩扫雷?成品及制作思路分享! 2021-09-06 17:47:46 4点赞 19收藏 5评论

创作立场声明:本文是基于Excel放飞自我的一种体验式原创分享。人生一世,些许言语,悦人悦己,亦为值。

Excel就只能是三十年手速疯狂填数据吗?

Excel就只能是死扣细节制作华丽图表原地成仙吗?

Excel就只能是枯燥乏味的闭眼复制粘贴吗?

NO~~~

我们还可以用它搞点乐子!来吧,既然不能功成名就,那就努力做个有趣的灵魂!

扫雷,相信大家都玩过,但是用Excel玩应该没几个,自己做完自己玩,应该没有谁会这么可爱吧~哈哈哈~

成品展示:

简单版自己试玩简单版自己试玩

获取路径:

简单版

专业版

制作思路(如果)一、扫雷的简单介绍

首先我们弄清楚扫雷的规则和逻辑,以最低难度为例:

在9x9的网格内,随机分布了10颗地雷。

在格子内显示周边地雷的数量,通过不同格的数字来分析和推理地雷的分布。

点到有地雷的格即为输。

二、Excel制作

梳理要实现的功能:

点击单元格,自动显示当前单元格的隐藏数值

根据当前单元格数值进行判断,并自动进行扩展显示等相应操作

判断游戏胜利和失败

当游戏开始时,操作区域是未知的,但你点与不点,地雷就在那里,不离不弃!所以,在操作区域之外,还需要设定一个隐藏区域,用于存放已定确定的地雷和数值分布。

基于这个思路,使用Excel制作扫雷小游戏的步骤大致如下:

脑子里大概是这么规划的~脑子里大概是这么规划的~

1 地雷“X”分布

指定9x9的单元格区域,随机选择其中10个单元格,写入“X”,再根据X计算周边单元格的数值。

1.1 “X”随机写入

1.1.1 随机选取10个单元格

思路:

通过行、列号来确定区域内的单元格位置。

为了避免重复,将所有单元格的行列号组成数组,随机获取10组,再提前行号和列号。

将“X”写入已定位的随机单元格。

制作:

设定单元格区域为A1:I9。

按照行列号,由11~99(剔除含0数字)组成整数数组,填充为一列。

做辅助列,使用RADN函数填充,再通过SMALL函数查找辅助列中最小的10个随机数,再使用MATCH函数得到这10个最小随机数的行号,最后使用INDEX函数返回行号对应的数组。(事实证明,这一步也可以使用VBA排序,然后复制前十即可,更简单!)

SMALL(查找区域,指定第几小)

MATCH(查找条件,区域,方法)

INDEX(区域,行号,列号)

使用LEFT和RIGHT函数提取行号和列号。

LEFT(单元格,左起截取几个)

RIGHT(单元格,右起截取几个)

使用VBA的for...next循环,按照行、列号写入"X"

事实证明,因为涉及自动刷写,这里使用Excel函数虽然可以并不能减少对VBA代码的依赖,反而更复杂了。专业版直接使用for...next写入并在中间做一个非重复的判断就实现了同样的效果,简单了很多。

1.2 地雷数量的计算和写入

创建另一区域,以写好”X“排布的区域为基础,使用IF和COUNTIF函数组合,计算空白单元格周围区域的地雷数量。

COUNTIF(区域,要查找的内容)

2 操作策略设计

设计鼠标点击时,相应的操作和逻辑。

2.1 值判定

思路:

如果所选单元格,对应隐藏区域单元格的值为0,则复制该单元格及周边区域的值。

如果所选单元格,对应隐藏区域单元格的值不为0,则只复制该单元格的值。

制作:

以当前选择单元格的行、列号定位隐藏区域对应的单元格。

VBA界面使用IF...THEN...语句进行判定和复制操作。

2.2 结果判定

思路:

当所选单元格,对应隐藏区域单元格的值为X时,游戏结束。

所有非X单元格被点击识别出之后,游戏胜利。

制作:

在值判定的IF...THEN...中增加一项X判定,成立则输出“游戏结束”并end sub。

在值判定之后,增加新的IF...THEN...语句,操作面板的数值和等于隐藏区域的数值和(即所有数字单元格都均已经识别出)时,输出“游戏胜利”

2.3 点击自动操作

思路:

点击操作面板单元格之后,自动进行值判定、结果判定。

制作:

将值判定和结果判定,写进同一个sub。

将sub更改为Private Sub Worksheet_SelectionChange(ByVal Target As Range),放在操作面板对应的sheet。

设置所选单元格的行、列号为变量,通过变量贯穿计算。

3 操作面板设计

3.1 设计面板区域

3.1.1 限定窗口滚动

在VBA界面的Sheet属性中,修改ScrollArea即可。

3.1.2 限定选择范围

修改游戏区域为“未锁定”,保护工作表,选择“选定未锁定单元格”。

3.2 增强显示效果

使用条件格式,对单元格为空值、数字、X分别以不同的颜色显示。

4 调整细节

略过



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3