Excel玩“记忆配对”?成品及制作思路分享!

2021-10-29 16:01:50 3点赞 13收藏 5评论

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

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

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

NO——我们还可以用它搞点乐子,来吧,既然不能功成名就,那就做个有趣的渣渣。

这次做的也是一个经典小游戏——记忆配对!设计了三种难度,反正我是玩玩简单的行,最高难度的感觉脑细胞受不住(不得不向岁月低头啊~)

成品展示:

Excel玩“记忆配对”?成品及制作思路分享!

获取路径:

完整版 https://wwx.lanzoui.com/i4blcvwi5ne 提取密码:cgyt

解压密码(rste)

PS.食用前记得打开允许宏设置

2007路径:①左上角圆形图标→②Excel选项→③信任中心→④信任中心设置→⑤宏设置→⑥启用所有宏。

2010路径:①左上角“文件”→②选项→③信任中心→④信任中心设置→⑤宏设置→⑥启用所有宏。

(其他版本Excel也差不多,参考设置)

**********游戏制作分享,完全可以不看系列 **********Excel玩“记忆配对”?成品及制作思路分享!

一、记忆配对的简单介绍

记忆配对小游戏的规则和逻辑非常简单:

  • 在指定区域的网格内,随机分布了n对图形。

  • 点击格子,所选格内的图形显示出来,如果与上一次点击的格子内图形一样,则配对成功。

  • 通过记住不同图形的位置,将其一对一对的找出来。

  • 所有格子的图形均显示出来之后,完成游戏。

二、Excel制作

OK!了解了规则和逻辑,那么接下来就是——

  1. 根据规则,梳理要实现的功能;

  2. 设计功能实现方法及实现过程;

  3. 微微肝一下的搞代码。

基于这个思路,使用Excel制作记忆配对小游戏的步骤大致如下:

Excel玩“记忆配对”?成品及制作思路分享!

1 点击翻开图形

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

1.1 布置隐藏面板

有了设计扫雷的经验,这个就很简单了~

思路:

  • 在隐藏面板写好n组固定的值,1列;

  • 做辅助列,利用RAN()为每一组分配一个随机数;

  • 根据辅助随机数大小进行排序,打乱图形;

  • 分段复制到设计好的区域内。

制作:

  • 以简单版为例,4x4网格,共16个8组图形,直接将1~8数字写进N列;

  • 在左侧M列对应写上”=ran()“,生成随机数;

  • 使用代码排序(使用筛选排序不会自动更新);

Range("M1:N16").sort Range("M1"), xlAscending '~~对M1:N16区域进行排序,顺序key是M1(随机数那一列),升序

  • 使用代码,将N列复制一份到O列,排序打乱后的结果就固定下来不在变了;

Range("N1:N16").Copy

Range("O1").PasteSpecial '~~PasteSpecial是选择性粘贴,直接copy也行

  • 利用for循环,以4个值为一个循环,粘贴到网格的1~4列。

For i = 1 To 4

Range(Cells(i * 4 - 3, "O"), Cells(i * 4, "O")).Copy

Cells(2, i + 1).PasteSpecial Next i

1.2 点击交互——SelectionChange

思路:

  • 识别当前点击的行列号(坐标),并进行记录(下次点击使用);

  • 判断有效性,如果点到已配对的图形需要区别处理(后文叙述);

  • 按照行列号,复制隐藏面板的图形至显示面板。

制作:

  • 定义变量zrow和zcol,表示当前选择的行列号;

zrow = Application.Selection.Row

zcol = Application.Selection.Column

  • 将zrow和zcol写进隐藏面板指定单元格,进行记录;

Sheet3.Range("S1") = zrow '~Sheet3为隐藏面板,S1、S2为记录行列号的单元格

Sheet3.Range("S2") = zcol

  • 使显示面板对应格与隐藏面板值相等(此处用Copy命令也可以)。

Sheet1.Cells(zrow, zcol) = Sheet3.Cells(zrow, zcol)

2 判断配对是否成功

使用IF判断,如果当前行列号与上一次行列号对应图形值不同则表示配对不成功,相同则表示成功,首次点击不作判断。

判断的代码嵌入SelectionChange的sub里面。

2.1 配对不成功

思路:

  • 点击显示图形,前次点击的图形消失;

  • 记录当前行列号,覆盖记录;

制作:

  • 按照当前zrow、zcol行列号执行点击显示图片(上述已有,不再重复编代码);

  • 定义lrow、lcol为前此点击行列号变量;

lrow = Sheet3.Range("S1")

lcol = Sheet3.Range("S2")

  • 显示面板lrow、lcol对应的单元格为空;

  • 行列号记录单元格写入zrow、zcol。

Sheet3.Range("S1") = zrow

Sheet3.Range("S2") = zcol

2.2 配对成功

思路:

  • 点击依旧显示图形,上一次点击图形不消失,并删除隐藏面板两次点击对应的图形(用于无效点击判断)。

  • 删除隐藏面板记录的行列号,避免下次删除已配对图形。

制作:

  • 按照当前zrow、zcol行列号执行点击显示图片(上述已有,不再重复编代码);

  • 隐藏面板zrow、zcol和lrow、lcol对应的单元格为空;

  • 行列号记录单元格为空。

2.3 非判断工况:无效点击和首次点击

思路:

  • 点到已配对的图形,为无效点击,不做任何操作;

  • 首次点击时,不做对比判断,记录当前行列号。

制作:

  • IF语句,如果隐藏面板zrow、zcol对应单元格为空,不做行列号记录和配对判断;

  • IF语句,如果隐藏面板zrow、zcol对应单元格不为空,且行列号记录为空,行列号记录单元格写入zrow、zcol,不进行配对判断。

2.4 IF判断顺序

根据动作逻辑,使用IF多层判断,顺序为——

  • 无效点击判断

  • 首次点击判断

  • 配对成功与否判断

IF... '~是否无效点击

IF... '~非无效点击,是否首次点击

IF... '~非无效点击、非首次点击,是否配对成功

'成功

'不成功

end if

end if

end if

3 游戏结束

思路:

  • 所有图形配对完,隐藏面板的图形均被清空,游戏结束。

制作:

  • 使用Count函数统计指定区域;

  • 使用IF语句判定。

If Application.WorksheetFunction.CountIf(Sheet3.Range("B2:E5"), "<>") = 0...

4 得分

采用步数和时间双重计数,简单公式计算即可,不重要,略过Excel玩“记忆配对”?成品及制作思路分享!

5 调整细节

调试代码和功能、调整显示细节等。

说实话,小游戏早就做出来了,自己也玩了好多遍Excel玩“记忆配对”?成品及制作思路分享!

但是要把思路和制作过程写出来,真的......Excel玩“记忆配对”?成品及制作思路分享!

下次尝试只写思路,代码有兴趣的直接找我要好了。

展开 收起

ihuman 洪恩 识字子集拼音思维ABC会员永久包3-6岁儿童早教启蒙礼物玩具 识字会员终身包

ihuman 洪恩 识字子集拼音思维ABC会员永久包3-6岁儿童早教启蒙礼物玩具 识字会员终身包

268元起

WPS 金山软件 WPS 超级会员 3年卡

WPS 金山软件 WPS 超级会员 3年卡

278元起

Microsoft 微软 OFFICE 365 家庭版 会员

Microsoft 微软 OFFICE 365 家庭版 会员

238元起

统信 UOS桌面操作系统V20/适用于国产型号/官方正版授权/国产专用

统信 UOS桌面操作系统V20/适用于国产型号/官方正版授权/国产专用

598元起

Microsoft 微软 Office 365 个人版

Microsoft 微软 Office 365 个人版

75元起

Microsoft 微软 大促爆发到手15月 微软office365家庭版microsoft365增强版

Microsoft 微软 大促爆发到手15月 微软office365家庭版microsoft365增强版

275元起

Microsoft 微软 OFFICE 365 个人版 办公软件

Microsoft 微软 OFFICE 365 个人版 办公软件

189元起

WPS超级会员2年pdf转word官方正版思维导图排版简历模板赠AI会员

WPS超级会员2年pdf转word官方正版思维导图排版简历模板赠AI会员

188.1元起

WPS超级会员Pro套餐4年卡1488天官方正版pdf转word排版

WPS超级会员Pro套餐4年卡1488天官方正版pdf转word排版

676.4元起

任天堂 Nintendo Switch《舞力全开 Just Dance》 游戏兑换卡

任天堂 Nintendo Switch《舞力全开 Just Dance》 游戏兑换卡

158元起

365office365OfficePLUS Microsoft365 12 -

365office365OfficePLUS Microsoft365 12 -

235元起

WPS 金山软件 会员季卡

WPS 金山软件 会员季卡

37.05元起

WPS超级会员4年套餐pdf转word排版PPT润色模板素材店铺

WPS超级会员4年套餐pdf转word排版PPT润色模板素材店铺

暂无报价

国行版 Switch体感游戏套装 《健身环大冒险》

国行版 Switch体感游戏套装 《健身环大冒险》

439元起

WPS 金山软件 超级会员年卡+芒果TV年卡

WPS 金山软件 超级会员年卡+芒果TV年卡

158元起

Microsoft 微软 618活动6天 office365家庭版microsoft365订阅密钥

Microsoft 微软 618活动6天 office365家庭版microsoft365订阅密钥

235元起
5评论

  • 精彩
  • 最新
提示信息

取消
确认
评论举报

相关好价推荐
查看更多好价

相关文章推荐

更多精彩文章
更多精彩文章
天猫超级红包
距结束::
每天领现金,最高24888元
红包按钮
最新文章 热门文章
13
扫一下,分享更方便,购买更轻松