excel版数独游戏(已完成)
前段时间一个朋友帮那小孩解数独游戏,让我帮解,我看他用电子表格做,只能显示,不能显示重复,也没有协助解题功能,于是我说帮你做个电子表格版的“解题助手”吧,不能直接解题,但该有的辅助功能都有。于是花了两天时间,用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
相关文章:
excel版数独游戏(已完成)
前段时间一个朋友帮那小孩解数独游戏,让我帮解,我看他用电子表格做,只能显示,不能显示重复,也没有协助解题功能,于是我说帮你做个电子表格版的“解题助手”吧,不能直接解题,但该有的…...
接口上传视频和oss直传视频到阿里云组件
接口视频上传 <template><div class"component-upload-video"><el-uploadclass"avatar-uploader":action"uploadImgUrl":on-progress"uploadVideoProcess":on-success"handleUploadSuccess":limit"lim…...
Arcgis 地图制作
地图如下,不同历史时期:...
【每日一题1121】python校招笔试题、面试题
1、Python字符串不是通过NUL或者’\0’来结束的 C语言中字符串使用’\0’作为结束符,以防止越界。但是在python中,字符串值只包含所定义的东西。 2、执行以下程序,输出结果为() class Base(object):count 0def __in…...
Spring Boot + Vue 基于 RSA 的用户身份认证加密机制实现
Spring Boot Vue 基于 RSA 的用户身份认证加密机制实现 什么是RSA?安全需求介绍前后端交互流程前端使用 RSA 加密密码安装 jsencrypt库实现敏感信息加密 服务器端生成RSA的公私钥文件Windows环境 生成rsa的公私钥文件Linux环境 生成rsa的公私钥文件 后端代码实现返…...
Docker搭建有UI的私有镜像仓库
Docker搭建有UI的私有镜像仓库 一、使用这个docker-compose.yml文件: version: 3services:registry-ui:image: joxit/docker-registry-ui:2.5.7-debianrestart: alwaysports:- 81:80environment:- SINGLE_REGISTRYtrue- REGISTRY_TITLEAtt Docker Registry UI- DE…...
Qt打开文件对话框选择文件之后弹出两次
项目场景: 在 Qt 中,使用 ui 自动生成的 UI 文件会为每个控件自动生成一些默认的槽函数。如果您手动创建的槽函数名称与这些自动生成的槽函数名称相同,就会导致信号被多次连接,从而引发多次弹出文件对话框的问题。 原因分析&…...
【JAVA】正则表达式中的正向肯定预查
在Java中,正向肯定预查(Positive Lookahead)是一种正则表达式的高级特性,用于在匹配某个模式之前检查某个条件是否满足。正向肯定预查不会消耗字符,也就是说,它不会将匹配的字符从剩余的字符串中移除&#…...
django从入门到实战(一)——路由的编写规则与使用
Django 路由的编写规则与使用 在 Django 中,路由(URLconf)是将 URL 映射到视图函数的机制。它允许我们定义网站的 URL 结构,并将请求分发到相应的处理函数。以下是关于 Django 路由的定义规则及使用的详细介绍。 1. Django 的路…...
vue框架开发的前端项目,build和package的区别
在使用 Vue 框架开发前端项目时,build 和 package 是两个常见的操作,它们有不同的目的和作用。下面是它们的区别: 1. Build(构建) build 是将前端源代码(如 Vue 组件、JavaScript 文件、CSS 样式等&#…...
视频智能分析软件LiteAIServer摄像机实时接入分析平台噪声监测算法介绍
在视频监控领域,噪声问题一直是一个令人头疼的难题。无论是低光环境、摄像机传感器的高灵敏度,还是编码压缩过程中的失真,都可能导致视频中出现噪声,从而影响监控画面的清晰度和准确性。这些噪声不仅降低了视频的可读性࿰…...
鸿蒙UI开发与部分布局
UI开发 1. 布局概述 1.1 开发流程 1.先确定开发流程 -> 2.分析页面元素构成 ->3.选用合适的布局容器组件 1.3 布局元素组成:盒模型 2.1 布局分类 2.1 线性布局 线性布局是开发中最常用、最基础的布局,通过线性容器Row和Column构建 2.1.1 线性布…...
redis的map底层数据结构 分别什么时候使用哈希表(Hash Table)和压缩列表(ZipList)
在Redis中,Hash数据类型的底层数据结构可以是压缩列表(ZipList)或者哈希表(HashTable)。这两种结构的使用取决于特定的条件: 1. **使用ZipList的条件**: - 当Hash中的数据项(即f…...
css水平居中+垂直居中
display:“flex”,position: “absolute”,top:“50%”,left:“50%”,transform: ‘translate(-50%, -50%)’...
设计模式之 组合模式
组合模式(Composite Pattern)是一种结构型设计模式,它通过将对象组合成树形结构来表示“部分-整体”层次。组合模式允许客户端统一处理单个对象和对象集合。换句话说,组合模式让客户端可以像处理单个对象一样处理对象的集合&#…...
LCR 001 两数相除
一.题目: . - 力扣(LeetCode) 二.原始解法-超时: class Solution: def divide(self, a: int, b: int) -> int: # 1)分析: # 除法计算,不能使用除法符号,可以理解为实现除法 # 除法…...
数据库、数据仓库、数据湖、数据中台、湖仓一体的概念和区别
数据库、数据仓库、数据湖、数据中台和湖仓一体是数据管理和分析领域的不同概念,各自有不同的特点和应用场景。以下是它们的主要区别: 1. 数据库(Database) 定义:结构化的数据存储系统,用于高效地存储、检…...
vue 的生命周期函数
Vue 生命周期函数(生命周期钩子)是 Vue 实例从创建到销毁过程中,不同阶段所触发的特定函数。理解这些生命周期函数对于开发 Vue 应用至关重要,因为它们让你在不同的生命周期阶段执行代码,比如数据初始化、DOM 渲染完成…...
单片机UART协议相关知识
概念 UART(Universal Asynchronous Receiver/Transmitter,通用异步收发传输器) 是一种 异步 串行 全双工 通信协议,用于设备一对一进行数据传输,只需要两根线(TX,RX)。 异步&…...
【操作系统不挂科】<CPU调度(13)>选择题(带答案与解析)
前言 大家好吖,欢迎来到 YY 滴 操作系统不挂科 系列 ,热烈欢迎! 本章主要内容面向接触过C的老铁 本博客主要内容,收纳了一部门基本的操作系统题目,供yy应对期中考试复习。大家可以参考 本章为选择题题库,试…...
利用最小二乘法找圆心和半径
#include <iostream> #include <vector> #include <cmath> #include <Eigen/Dense> // 需安装Eigen库用于矩阵运算 // 定义点结构 struct Point { double x, y; Point(double x_, double y_) : x(x_), y(y_) {} }; // 最小二乘法求圆心和半径 …...
深入浅出Asp.Net Core MVC应用开发系列-AspNetCore中的日志记录
ASP.NET Core 是一个跨平台的开源框架,用于在 Windows、macOS 或 Linux 上生成基于云的新式 Web 应用。 ASP.NET Core 中的日志记录 .NET 通过 ILogger API 支持高性能结构化日志记录,以帮助监视应用程序行为和诊断问题。 可以通过配置不同的记录提供程…...
Leetcode 3576. Transform Array to All Equal Elements
Leetcode 3576. Transform Array to All Equal Elements 1. 解题思路2. 代码实现 题目链接:3576. Transform Array to All Equal Elements 1. 解题思路 这一题思路上就是分别考察一下是否能将其转化为全1或者全-1数组即可。 至于每一种情况是否可以达到…...
【SQL学习笔记1】增删改查+多表连接全解析(内附SQL免费在线练习工具)
可以使用Sqliteviz这个网站免费编写sql语句,它能够让用户直接在浏览器内练习SQL的语法,不需要安装任何软件。 链接如下: sqliteviz 注意: 在转写SQL语法时,关键字之间有一个特定的顺序,这个顺序会影响到…...
【算法训练营Day07】字符串part1
文章目录 反转字符串反转字符串II替换数字 反转字符串 题目链接:344. 反转字符串 双指针法,两个指针的元素直接调转即可 class Solution {public void reverseString(char[] s) {int head 0;int end s.length - 1;while(head < end) {char temp …...
Java 加密常用的各种算法及其选择
在数字化时代,数据安全至关重要,Java 作为广泛应用的编程语言,提供了丰富的加密算法来保障数据的保密性、完整性和真实性。了解这些常用加密算法及其适用场景,有助于开发者在不同的业务需求中做出正确的选择。 一、对称加密算法…...
Module Federation 和 Native Federation 的比较
前言 Module Federation 是 Webpack 5 引入的微前端架构方案,允许不同独立构建的应用在运行时动态共享模块。 Native Federation 是 Angular 官方基于 Module Federation 理念实现的专为 Angular 优化的微前端方案。 概念解析 Module Federation (模块联邦) Modul…...
QT: `long long` 类型转换为 `QString` 2025.6.5
在 Qt 中,将 long long 类型转换为 QString 可以通过以下两种常用方法实现: 方法 1:使用 QString::number() 直接调用 QString 的静态方法 number(),将数值转换为字符串: long long value 1234567890123456789LL; …...
自然语言处理——循环神经网络
自然语言处理——循环神经网络 循环神经网络应用到基于机器学习的自然语言处理任务序列到类别同步的序列到序列模式异步的序列到序列模式 参数学习和长程依赖问题基于门控的循环神经网络门控循环单元(GRU)长短期记忆神经网络(LSTM)…...
什么?连接服务器也能可视化显示界面?:基于X11 Forwarding + CentOS + MobaXterm实战指南
文章目录 什么是X11?环境准备实战步骤1️⃣ 服务器端配置(CentOS)2️⃣ 客户端配置(MobaXterm)3️⃣ 验证X11 Forwarding4️⃣ 运行自定义GUI程序(Python示例)5️⃣ 成功效果