excel版数独游戏(已完成)

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

主要功能:

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

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

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

界面说明:

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

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

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

功能实现:

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

代码:

Sub 对工作表保护()
    Dim rng As Range
    Dim cell As Range
    Sheets(1).Unprotect
    Sheets(1).Cells.Locked = False
    
        
    For Each cell In Range("B2:J10")
        If cell.value <> "" And cell.Font.Color = vbBlack Then
            cell.Locked = True
        Else
            cell.Font.Color = vbRed
            
        End If
    Next
    'Range("k11:l11").Locked = True
    'Range("b11:j11").Font.Color = vbRed
    Range("b11:o11").Locked = True
    
    Sheets(1).Protect
End Sub

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

Sub 解锁()
    Sheets(1).Unprotect
    Sheets(1).Cells.Locked = False

End Sub

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

Sub 重玩()
    Dim 选择 As VbMsgBoxResult
    Dim rng As Range
    Dim cell As Range
    选择 = MsgBox("重玩将删除所有已解部分?", vbInformation + vbYesNo, "警告")
    If 选择 = vbYes Then
        Call 解锁
    
        For Each cell In Range("B2:J10")
            If cell.Font.Color = vbRed Then
                cell.ClearContents
                cell.Interior.Color = vbWhite
            Else
                cell.Interior.Color = vbWhite
                cell.Locked = True
           
            End If
        Next

    End If
    Range("b11:j11").Font.Color = vbRed
    Sheets(1).Protect
End Sub

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

Sub 清空()
    Dim 选择 As VbMsgBoxResult
    选择 = MsgBox("清空所有内容,无法恢复,确定?", vbInformation + vbYesNo, "清空警告")
    If 选择 = vbYes Then
        Sheets(1).Unprotect
        Sheets(1).Cells.Locked = False
        
        Range("b2:j10").ClearContents
        Range("b2:j10").Font.Size = 18
        Range("b2:j10").Font.Color = vbBlack
        Cells.Interior.Color = vbWhite
        
    End If
    Range("b11:j11").Font.Color = vbRed
    
End Sub

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

Sub 填3()

    Dim selectedRange As Range
    Set selectedRange = Selection
    selectedRange.value = 3
    Call 完成弹窗
End Sub

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

Sub 查找2()
    Dim rng As Range
    Dim cell As Range
    Call 解锁
    count = 0
    Range("B2:J10").Interior.Color = vbWhite
    For Each cell In Range("B2:J10")
        If cell.value = "2" Then
            cell.Interior.Color = vbCyan
            count = count + 1
        End If
               
    Next
    If count = 9 Then
        Range("c11").Font.Color = vbWhite
    End If
    Call 对工作表保护
End Sub

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

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

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

下载链接:

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/920600.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Linux上安装单机版Kafka

1、上传Kafka安装包至Linux并进行解压 kafka_2.12-1.1.1.tgz 链接&#xff1a;https://pan.baidu.com/s/1i41RKHlCbp0q2xQ1PEgT5g 提取码&#xff1a;vofa 将安装包解压 tar -zxvf kafka_2.12-1.1.1.tgz 2、修改kafka配置 vi config/server.properties 只修改绑定 IP &#…

Kafka 消费者全面解析:原理、消费者 API 与Offset 位移

Kafka&#xff1a;分布式消息系统的核心原理与安装部署-CSDN博客 自定义 Kafka 脚本 kf-use.sh 的解析与功能与应用示例-CSDN博客 Kafka 生产者全面解析&#xff1a;从基础原理到高级实践-CSDN博客 Kafka 生产者优化与数据处理经验-CSDN博客 Kafka 工作流程解析&#xff1a…

AUTOSAR - 接口

Application Port Interface&#xff0c;Service Port Interface&#xff0c;除了IS-SERVICE字段外&#xff0c;其余都相同。 ClientServer 支持IsService <CLIENT-SERVER-INTERFACE UUID"523b6eb5-6814-4b10-893e-de3aa9b68b90"><SHORT-NAME>app_cs_1&…

Android Gradle自定义任务在打包任务执行完成后执行cmd命令

背景 在每次打包之后需要做某事&#xff0c;例如每次打包后我都会安装某个目录下的一个apk。这个apk是通过一堆shell命令过滤得到一个apk的地址&#xff0c;然后把执行的几个shell命令何必成一个alias指令&#xff0c;在打包后只需要执行alias指令实现功能。当然也可以直接写在…

2023AE软件、Adobe After Effects安装步骤分享教程

2023AE软件是一款由Adobe公司开发的视频编辑软件&#xff0c;也被称为Adobe After Effects。它在广告、电影、电视和网络视频等领域广泛应用&#xff0c;用于制作动态图形、特效、合成和其他视觉效果。该软件支持多种视频和音频文件格式&#xff0c;具有丰富的插件和预设&#…

Prometheus结合K8s(二)使用

上一篇介绍了如何搭建 Prometheus结合K8s&#xff08;一&#xff09;搭建-CSDN博客&#xff0c;这章介绍使用 页面访问 kubectl get svc -n prom 看promeheus和granfana的端口访问页面 Prometheus 点击status—target&#xff0c;可以看到metrics的数据来源&#xff0c;即各…

单片机学习笔记 1. 点亮一个LED灯

把基础的东西都过一下&#xff0c;用来学习记录一下。 目录 1、Keil工程 2、Keil实现代码 3、烧录程序 0、实现的功能 点亮一个LED灯 1、Keil工程 打开Keil&#xff0c;Project----New uVision Project&#xff0c;工程文件命名----OK 选择单片机类型AT89C52&#xff0c;和…

Ubuntu安装sublime Tex

Ubuntu安装sublime Text步骤_ubuntu sublime-CSDN博客 Sublime Text 3 - Sublime Text sudo dpkg -i sublime-text_build_3211_amd64.deb

基于FPGA(现场可编程门阵列)的SD NAND图片显示系统是一个复杂的项目,它涉及硬件设计、FPGA编程、SD卡接口、NAND闪存控制以及图像显示等多个方面

文章目录 0、前言 1、目标 2、图片的预处理 3、SD NAND的预处理 4、FPGA实现 4.1、详细设计 4.2、仿真 4.3、实验结果 前言 在上一篇文章《基于FPGA的SD卡的数据读写实现&#xff08;SD NAND FLASH&#xff09;》中&#xff0c;我们了解到了SD NAND Flash的相关知识&am…

Ubuntu24.04LTS设置root用户可远程登录

Ubuntu24.04LTS设置root用户可远程登录 文章目录 Ubuntu24.04LTS设置root用户可远程登录1. 设置root密码2. 设置root用户可远程登录1. 查看ssh服务是否安装2. 安装ssh服务3. 再次查看ssh服务是否安装4. 配置ssh文件5. 重启ssh服务6. root远程登录 1. 设置root密码 Ubuntu安装后…

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

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

python中的base64使用小笑话

在使用base64的时候将本地的图片转换为base64 代码如下&#xff0c;代码绝对正确 import base64 def image_to_data_uri(image_path):with open(image_path, rb) as image_file:image_data base64.b64encode(image_file.read()).decode(utf-8)file_extension image_path.sp…

bert的模型训练和使用情绪识别

bert我的理解从它的名字可以看出来&#xff0c;它是一种双向的编码器解码器结构&#xff0c;也就是说它非常的高效&#xff0c;非常的高级&#xff0c;在它非常小的麻雀腹内居然五脏俱全。所以按道理来说&#xff0c;它应该是比gpt模型更加全面。所以我们有学习它的必要。 安装…

一分钟学习数据安全——IAM系统的数据访问控制模型

数据访问控制是信息系统中至关重要的安全功能&#xff0c;通过对用户访问权限的管理&#xff0c;保护系统中的敏感数据和资源&#xff0c;防止未经授权的访问、篡改和滥用。 数据访问控制发生在身份鉴别之后&#xff0c;解决主体如何安全访问数据的问题。 实施数据访问控制一…

STARTS:一种用于自动脑电/脑磁(E/MEG)源成像的自适应时空框架|文献速递-基于深度学习的病灶分割与数据超分辨率

Title 题目 STARTS: A Self-adapted Spatio-temporal Framework for Automatic E/MEG SourceImaging STARTS&#xff1a;一种用于自动脑电/脑磁(E/MEG)源成像的自适应时空框架 01 文献速递介绍 电生理源成像&#xff08;Electrophysiological Source Imaging&#xff0c;E…

AI Large Language Model

AI 的 Large Language model LLM , 大语言模型&#xff1a; 是AI的模型&#xff0c;专门设计用来处理自然语言相关任务。它们通过深度学习和庞大的训练数据集&#xff0c;在理解和生成自然语言文本方面表现出色。常见的 LLM 包括 OpenAI 的 GPT 系列、Google 的 PaLM 和 Meta…

Spyglass:更改默认编辑器

相关阅读 Spyglasshttps://blog.csdn.net/weixin_45791458/category_12828934.html?spm1001.2014.3001.5482 Spyglass默认使用的是Vim(Small Version)作为其文本编辑器&#xff0c;如果希望使用其他文本编辑器&#xff08;比如gedit、nano、VS Code、Sublime Text&#xff09…

网络安全之接入控制

身份鉴别 ​ 定义:验证主题真实身份与其所声称的身份是否符合的过程&#xff0c;主体可以是用户、进程、主机。同时也可实现防重放&#xff0c;防假冒。 ​ 分类:单向鉴别、双向鉴别、三向鉴别。 ​ 主题身份标识信息:密钥、用户名和口令、证书和私钥 Internet接入控制过程 …

【网站推荐】the top trending open-source startups, every quarter

每季度最热门的开源初创公司 我们根据 GitHub 存储库自 2020 年以来的明星增长情况发布热门开源项目&#xff0c;并将其称为 Runa 开源初创公司 (ROSS) 指数。 una Capital actively invests in open-source startups (like Nginx and MariaDB) and considers an active deve…

java学习记录11

异常 在java中提供了处理异常的机制&#xff0c;能够帮助我们避免程序崩溃。 Throwable可以用来表示任何可以作为异常抛出的类&#xff0c;分为两种&#xff1a; Error和Exception。其中Error用来表示JVM无法处理的错误。程序被强制终止。 Exception又分为两种&#xff1a; 受…