excel版数独游戏(已完成)

devtools/2024/11/26 9:11:57/

前段时间一个朋友帮那小孩解数独游戏,让我帮解,我看他用电子表格做,只能显示,不能显示重复,也没有协助解题功能,于是我说帮你做个电子表格版的“解题助手”吧,不能直接解题,但该有的辅助功能都有。于是花了两天时间,用excel的宏功能做了一个,分享出来,有爱好者可下载玩玩。

主要功能:

1、编辑数独题目,辅助解题。

2、内置100道数独题目,跟其他数独游戏一样。

下面简单介绍一下这个小游戏

界面说明:

功能和功能与市场上一般的数独游戏没什么差别,只是多了一个自定义题目的功能,这个功能很多游戏都没有。内置题目没有答案,所以不会告诉解法对不对,其实也能做,懒的做。下面把这个游戏功能和实现方法简单讲一下。

题目显示区:这个没什么好说的,就是题目显示和解题操作区。

编辑操作区:由于要实现自定义题目,所以要有编辑功能,但在编辑的时候所有填写的数字是黑色,解题的时候显示红色,因为没有答案所以必须区分哪些是原内容,哪些是你填写的内容。所以编辑的时候要点击“编辑解锁”,才可以编辑。题目编辑完成后点击“编辑锁定”,已填写的内容为黑色且不可修改,可填写区域字体为红色。“重玩”就是把所有解题填写的内容清空,已输入的题目不动。“清空”就是把所有内容全部删除,并进入题目编辑状态。

功能实现:

锁定编辑:就是利用宏实现了电子表格的锁定功能,让编辑题目已填写的内容不可修改。

代码:

Sub 对工作表保护()Dim rng As RangeDim cell As RangeSheets(1).UnprotectSheets(1).Cells.Locked = FalseFor Each cell In Range("B2:J10")If cell.value <> "" And cell.Font.Color = vbBlack Thencell.Locked = TrueElsecell.Font.Color = vbRedEnd IfNext'Range("k11:l11").Locked = True'Range("b11:j11").Font.Color = vbRedRange("b11:o11").Locked = TrueSheets(1).Protect
End Sub

编辑解锁:点击后可编辑所有单元格,这个功能可用于修改编辑错误的内容。代码很简单。

Sub 解锁()Sheets(1).UnprotectSheets(1).Cells.Locked = FalseEnd Sub

重玩:就是将题目原有单元格保留,删除已填写内容。

Sub 重玩()Dim 选择 As VbMsgBoxResultDim rng As RangeDim cell As Range选择 = MsgBox("重玩将删除所有已解部分?", vbInformation + vbYesNo, "警告")If 选择 = vbYes ThenCall 解锁For Each cell In Range("B2:J10")If cell.Font.Color = vbRed Thencell.ClearContentscell.Interior.Color = vbWhiteElsecell.Interior.Color = vbWhitecell.Locked = TrueEnd IfNextEnd IfRange("b11:j11").Font.Color = vbRedSheets(1).Protect
End Sub

清空:清空所有内容,可重新编辑。

Sub 清空()Dim 选择 As VbMsgBoxResult选择 = MsgBox("清空所有内容,无法恢复,确定?", vbInformation + vbYesNo, "清空警告")If 选择 = vbYes ThenSheets(1).UnprotectSheets(1).Cells.Locked = FalseRange("b2:j10").ClearContentsRange("b2:j10").Font.Size = 18Range("b2:j10").Font.Color = vbBlackCells.Interior.Color = vbWhiteEnd IfRange("b11:j11").Font.Color = vbRedEnd Sub

填写操作区:这个就是点击单元格后,要在该单元格填写的数字,这里面每个数字功能类似。

Sub 填3()Dim selectedRange As RangeSet selectedRange = SelectionselectedRange.value = 3Call 完成弹窗
End Sub

辅助显示区:这个功能是点击题目上有单元格后,在题目内所有的该数字都会显示出来,起到辅助判定的目的,就像最上面的图,点击1后,题目内所有的1背景色都改为线蓝色。

Sub 查找2()Dim rng As RangeDim cell As RangeCall 解锁count = 0Range("B2:J10").Interior.Color = vbWhiteFor Each cell In Range("B2:J10")If cell.value = "2" Thencell.Interior.Color = vbCyancount = count + 1End IfNextIf count = 9 ThenRange("c11").Font.Color = vbWhiteEnd IfCall 对工作表保护
End Sub

完成显示区:如果哪个数字已经全部填写完成,该数字会消失。如图,所有的9个1都找到,1就不再显示。

该功能的实现是通过点击辅助显示区内的数字实现的,代码也在里面。

还有其他很多宏代码,不一一展示,需要的可自行下载研究。比较麻烦的是查重功能,就是如果同一行列宫内有数字重复,则提示,我没写出来,是通过录制宏后,研究代码后改写的。

下载链接:

https://download.csdn.net/download/kim5659/90021131


http://www.ppmy.cn/devtools/137074.html

相关文章

VM虚拟机装MAC后无法联网,如何解决?

✨在vm虚拟机上&#xff0c;给虚拟机MacOS设置网络适配器。选择NAT模式用于共享主机的IP地址 ✨在MacOS设置中设置网络 以太网 使用DHCP ✨回到本地电脑上&#xff0c;打开 服务&#xff0c;找到VMware DHCP和VMware NAT&#xff0c;把这两个服务打开&#xff0c;专一般问题就…

【Qt流式布局改造支持任意位置插入和删除】

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、源代码二、删除代码三、扩展总结 前言 最近在做一个需求需要流式布局&#xff0c;虽然官方example里有一个流式布局范例&#xff0c;但是不能满足我的需求…

Cannal实现MySQL主从同步环境搭建

大家好&#xff0c;我是袁庭新。 在多数情况下&#xff0c;客户端往往会优先获取缓存中的数据。然而&#xff0c;当缓存数据与数据库中的实际数据存在显著不一致时&#xff0c;可能会导致严重的后果。因此&#xff0c;确保数据库与缓存数据之间的一致性变得至关重要&#xff0c…

40分钟学 Go 语言高并发:【实战】并发安全的配置管理器(功能扩展)

【实战】并发安全的配置管理器&#xff08;功能扩展&#xff09; 一、扩展思考 分布式配置中心 实现配置的集中管理支持多节点配置同步实现配置的版本一致性 配置加密 敏感配置的加密存储配置的安全传输访问权限控制 配置格式支持 支持YAML、TOML等多种格式配置格式自动…

【ChatGPT大模型开发调用】如何获得 OpenAl API Key?

如何获取 OpenAI API Key 获取 OpenAI API Key 主要有以下三种途径&#xff1a; OpenAI 官方平台 (推荐): 开发者用户可以直接在 OpenAI 官方网站 (platform.openai.com) 注册并申请 API Key。 通常&#xff0c;您可以在账户设置或开发者平台的相关页面找到申请入口。 Azure…

Unity3D 客户端网络角色的操作与行为分离设计详解

前言 在网络游戏中&#xff0c;客户端网络角色的操作与行为分离设计是非常重要的&#xff0c;它可以提高游戏的可维护性和扩展性&#xff0c;同时也可以提升游戏的性能和用户体验。 对惹&#xff0c;这里有一个游戏开发交流小组&#xff0c;希望大家可以点击进来一起交流一下…

stable diffusion生成模型

1、stable diffusion Stable Diffusion 是一种扩散模型,基于对图像的逐步去噪过程训练和生成。它的核心包括以下几个步骤: 扩散过程(Diffusion Process)在训练时,向真实图像逐步添加噪声,最终将其变为纯随机噪声。这是一个正向过程,目的是学习如何将复杂的图像分解成随…

【Github】如何使用Git将本地项目上传到Github

【Github】如何使用Git将本地项目上传到Github 写在最前面1. 注册Github账号2. 安装Git工具配置用户名和邮箱仅为当前项目配置&#xff08;可选&#xff09; 3. 创建Github仓库4. 获取仓库地址5. 本地操作&#xff08;1&#xff09;进入项目文件夹&#xff08;2&#xff09;克隆…