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应对期中考试复习。大家可以参考 本章为选择题题库,试…...
iOS 26 携众系统重磅更新,但“苹果智能”仍与国行无缘
美国西海岸的夏天,再次被苹果点燃。一年一度的全球开发者大会 WWDC25 如期而至,这不仅是开发者的盛宴,更是全球数亿苹果用户翘首以盼的科技春晚。今年,苹果依旧为我们带来了全家桶式的系统更新,包括 iOS 26、iPadOS 26…...
Lombok 的 @Data 注解失效,未生成 getter/setter 方法引发的HTTP 406 错误
HTTP 状态码 406 (Not Acceptable) 和 500 (Internal Server Error) 是两类完全不同的错误,它们的含义、原因和解决方法都有显著区别。以下是详细对比: 1. HTTP 406 (Not Acceptable) 含义: 客户端请求的内容类型与服务器支持的内容类型不匹…...
<6>-MySQL表的增删查改
目录 一,create(创建表) 二,retrieve(查询表) 1,select列 2,where条件 三,update(更新表) 四,delete(删除表…...
《从零掌握MIPI CSI-2: 协议精解与FPGA摄像头开发实战》-- CSI-2 协议详细解析 (一)
CSI-2 协议详细解析 (一) 1. CSI-2层定义(CSI-2 Layer Definitions) 分层结构 :CSI-2协议分为6层: 物理层(PHY Layer) : 定义电气特性、时钟机制和传输介质(导线&#…...
STM32标准库-DMA直接存储器存取
文章目录 一、DMA1.1简介1.2存储器映像1.3DMA框图1.4DMA基本结构1.5DMA请求1.6数据宽度与对齐1.7数据转运DMA1.8ADC扫描模式DMA 二、数据转运DMA2.1接线图2.2代码2.3相关API 一、DMA 1.1简介 DMA(Direct Memory Access)直接存储器存取 DMA可以提供外设…...
《通信之道——从微积分到 5G》读书总结
第1章 绪 论 1.1 这是一本什么样的书 通信技术,说到底就是数学。 那些最基础、最本质的部分。 1.2 什么是通信 通信 发送方 接收方 承载信息的信号 解调出其中承载的信息 信息在发送方那里被加工成信号(调制) 把信息从信号中抽取出来&am…...
C++ 基础特性深度解析
目录 引言 一、命名空间(namespace) C 中的命名空间 与 C 语言的对比 二、缺省参数 C 中的缺省参数 与 C 语言的对比 三、引用(reference) C 中的引用 与 C 语言的对比 四、inline(内联函数…...
2025 后端自学UNIAPP【项目实战:旅游项目】6、我的收藏页面
代码框架视图 1、先添加一个获取收藏景点的列表请求 【在文件my_api.js文件中添加】 // 引入公共的请求封装 import http from ./my_http.js// 登录接口(适配服务端返回 Token) export const login async (code, avatar) > {const res await http…...
3403. 从盒子中找出字典序最大的字符串 I
3403. 从盒子中找出字典序最大的字符串 I 题目链接:3403. 从盒子中找出字典序最大的字符串 I 代码如下: class Solution { public:string answerString(string word, int numFriends) {if (numFriends 1) {return word;}string res;for (int i 0;i &…...
pikachu靶场通关笔记22-1 SQL注入05-1-insert注入(报错法)
目录 一、SQL注入 二、insert注入 三、报错型注入 四、updatexml函数 五、源码审计 六、insert渗透实战 1、渗透准备 2、获取数据库名database 3、获取表名table 4、获取列名column 5、获取字段 本系列为通过《pikachu靶场通关笔记》的SQL注入关卡(共10关࿰…...
