excel版数独游戏(已完成)

news2024/12/29 8:50:41

前段时间一个朋友帮那小孩解数独游戏,让我帮解,我看他用电子表格做,只能显示,不能显示重复,也没有协助解题功能,于是我说帮你做个电子表格版的“解题助手”吧,不能直接解题,但该有的辅助功能都有。于是花了两天时间,用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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

金融数据中心容灾“大咖说” | 美创科技赋能“灾备一体化”建设

中国人民银行发布的《金融数据中心容灾建设指引》&#xff08;JR/T 0264—2024&#xff09;已于2024年7月29日正式实施。这一金融行业标准对金融数据中心容灾建设中的“组织保障、需求分析、体系规划、建设要求、运维管理”进行了规范和指导。面对不断增加的各类网络、业务、应…

Qt:信号槽

一. 信号槽概念 信号槽 是 Qt 框架中一种用于对象间通信的机制 。它通过让一个对象发出信号&#xff0c;另一个对象连接到这个信号的槽上来实现通信。信号槽机制是 Qt 的核心特性之一&#xff0c;提供了一种灵活且类型安全的方式来处理事件和数据传递。 1. 信号的本质 QT中&a…

SpringBoot与MongoDB深度整合及应用案例

SpringBoot与MongoDB深度整合及应用案例 在当今快速发展的软件开发领域&#xff0c;NoSQL数据库因其灵活性和可扩展性而变得越来越流行。MongoDB&#xff0c;作为一款领先的NoSQL数据库&#xff0c;以其文档导向的存储模型和强大的查询能力脱颖而出。本文将为您提供一个全方位…

大数据调度组件之Apache DolphinScheduler

Apache DolphinScheduler 是一个分布式易扩展的可视化 DAG 工作流任务调度系统。致力于解决数据处理流程中错综复杂的依赖关系&#xff0c;使调度系统在数据处理流程中开箱即用。 主要特性 易于部署&#xff0c;提供四种部署方式&#xff0c;包括Standalone、Cluster、Docker和…

ThinkPHP6门面(Facade)

门面 门面&#xff08;Facade&#xff09; 门面为容器中的&#xff08;动态&#xff09;类提供了一个静态调用接口&#xff0c;相比于传统的静态方法调用&#xff0c; 带来了更好的可测试性和扩展性&#xff0c;你可以为任何的非静态类库定义一个facade类。 系统已经为大部分…

MySQL win安装 和 pymysql使用示例

目录 一、MySQL安装 下载压缩包&#xff1a; 编写配置文件&#xff1a; 配置环境变量&#xff1a; 初始化服务和账户 关闭mysql开机自启&#xff08;可选&#xff09; 建议找一个数据库可视化软件 二、使用pymysql操作数据库 安装pymysql 示例代码 报错处理 一、My…

Parker派克防爆电机在实际应用中的安全性能如何保证?

Parker防爆电机确保在实际应用中的安全性能主要通过以下几个方面来保证&#xff1a; 1.防爆外壳设计&#xff1a;EX系列电机采用强大的防爆外壳&#xff0c;设计遵循严格的防爆标准&#xff0c;能够承受内部可能发生的爆炸而不破损&#xff0c;利用间隙切断原理&#xff0c;防…

空间与单细胞转录组学的整合定位肾损伤中上皮细胞与免疫细胞的相互作用

result 在空间转录组图谱中对人类肾脏进行无监督映射和细胞类型鉴定 我们试图在H&E染色的人类参考肾切除标本组织切片上直接映射转录组特征。该组织来自一名59岁的女性&#xff0c;其肾小球闭塞和间质纤维化程度最低&#xff08;分别影响不到10%的肾小球或肾实质&#xff…

greater<>() 、less<>()及运算符 < 重载在排序和堆中的使用

简略图 greater<>()(a, b) a > b 返回true&#xff0c;反之返回false less<>()(a, b) a < b 返回true&#xff0c;反之返回false 在cmp中使用&#xff08;正着理解&#xff09; 规则返回true时a在前&#xff0c;反之b在前 在priority_queue中使用 &#xff…

详细描述一下Elasticsearch索引文档的过程?

大家好&#xff0c;我是锋哥。今天分享关于【详细描述一下Elasticsearch索引文档的过程&#xff1f;】面试题。希望对大家有帮助&#xff1b; 详细描述一下Elasticsearch索引文档的过程&#xff1f; Elasticsearch的索引文档过程是其核心功能之一&#xff0c;涉及将数据存储到…

入门车载以太网(6) -- XCP on Ethernet

目录 1.寻址方式 2.数据帧格式 3.特殊指令 4.使用实例 了解了SOME/IP之后&#xff0c;继续来看看车载以太网在汽车标定领域的应用。 在汽车标定领域XCP是非常重要的协议&#xff0c;咱们先来回顾下基础概念。 XCP全称Universal Measurement and Calibration Protocol&a…

Python中常用的函数介绍

Python中常用的几种函数 1、input函数 input()函数&#xff1a;主要作用是让用户输入某个内容并接收它。 #输入你的年龄 >>> age input("my age is :") my age is :20 执行代码后输入年龄&#xff0c;年龄被存放到age变量中&#xff0c;执行print后终端会…

Ubuntu从入门到精通(二)远程和镜像源配置齐全

Ubuntu从入门到精通(二) 1 常见操作配置 1.1 英文语言配置 1.1.1 打开设置 1.1.2 设置语言为英文 1.1.3 重启生效 1.1.4 再次进入,选择更新名字 1.1.5 再次进入,发现已经变成了英文 1.2 输入法配置 1.3 rustdesk安装 1.3.1 Windows系统配置 登陆:https://github.com…

卷积神经网络(CNN)中的池化层(Pooling Layer)

池化层&#xff08;Pooling Layer&#xff09;&#xff0c;也被称为下采样层&#xff0c;是深度学习神经网络中常用的一种层级结构。它通常紧跟在卷积层之后&#xff0c;对卷积层输出的特征图进行下采样操作。 一、定义与功能 池化层的主要作用是通过减少特征图的尺寸来降低计算…

【linux硬件操作系统】计算机硬件常见硬件故障处理

这里写目录标题 一、故障排错的基本原则二、硬件维护注意事项三、关于最小化和还原出厂配置四、常见故障处理及调试五、硬盘相关故障六、硬盘相关故障&#xff1a;硬盘检测问题七、硬盘相关故障&#xff1a;自检硬盘报错八、硬盘相关故障&#xff1a;硬盘亮红灯九、硬盘相关故障…

《操作系统》实验内容 实验二 编程实现进程(线程)同步和互斥(Python 与 PyQt5 实现)

实验内容 实验二 编程实现进程&#xff08;线程&#xff09;同步和互斥 1&#xff0e;实验的目的 &#xff08;1&#xff09;通过编写程序实现进程同步和互斥&#xff0c;使学生掌握有关进程&#xff08;线程&#xff09;同步与互斥的原理&#xff0c;以及解决进程&#xf…

智慧路面管理系统平台 智慧照明 智慧市政 智慧交通

智慧路面管理系统平台   智慧路面管理系统平台&#xff0c;旨在提高城市道路的智能化水平和交通效率。该系统通过集成传感器、摄像头、监控设备、大数据、云计算等多种技术手段&#xff0c;实现对道路状况和交通流量的实时监测与分析&#xff0c;从而提供精准的交通数据和智能…

数据结构 ——— 判断一棵树是否是完全二叉树

目录 满二叉树和完全二叉树示意图 手搓一个完全二叉树 代码实现 满二叉树和完全二叉树示意图 注意区分满二叉树和完全二叉树 满二叉树的每一层都是满的&#xff0c;也就是除了叶子节点&#xff0c;其他节点都有左右节点 完全二叉树的最后一层不一定是满的&#xff0c;但是从…

Vue_Router权限控制:不同角色显示不同路由

写在前面 在Vue中&#xff0c;Router是一个官方提供的用于处理应用程序路由的插件。它允许我们创建单页应用程序&#xff08;SPA&#xff09;&#xff0c;其中不同的页面和组件可以通过URL进行导航和展示。使我们可以轻松地创SPA&#xff0c;并实现可复用和可组合的组件…

java多线程并发执行方法或者调用接口

在开发过程中有时需要检查某个接口或者某个方法是否存在并发安全问题&#xff0c;我们会用到jmeter 、AB 等压测工具辅助我们完成代码测试&#xff0c;虽然这些工具功能很强大&#xff0c;也很好用&#xff0c;但是在开发过程中来使用还是不如直接执行Test 或者main 方法来的方…