# shu-du **Repository Path**: yanzuwuplus/shu-du ## Basic Information - **Project Name**: shu-du - **Description**: shu-du - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-02-09 - **Last Updated**: 2026-02-09 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 数独游戏使用说明 ## 🎮 游戏简介 这是一个本地纯净版的数独游戏,支持多种难度、候选数模式、撤销重做等功能。游戏完全在浏览器中运行,无需联网,所有数据保存在本地。生成的题目保证唯一解。 --- ## 🎯 游戏规则 数独是一种逻辑填数游戏,规则如下: - 在9×9的网格中填入数字1-9 - 每行、每列、每个3×3的小宫格内,数字1-9只能出现一次 - 游戏开始时,部分格子已经填有数字 - 你的目标是填满所有空格,且满足上述规则 --- ## 🕹️ 操作方法 ### 基本操作 | 操作 | 方法 | |------|------| | 选择格子 | 点击棋盘上的任意格子 | | 输入数字 | 选中格子后,按键盘1-9或点击数字九宫格 | | 擦除数字 | 点击"⌫ 擦除"按钮或按Backspace键(会同时清除格子的数字和候选数) | | 撤销操作 | 点击撤销按钮或按Ctrl+Z | | 重做操作 | 点击重做按钮或按Ctrl+Y | ### 候选数模式 **候选数模式**用于标记可能的数字,帮助推理: | 操作 | 方法 | |------|------| | 开启候选数模式 | 点击"✏️ 候选数模式(关)"按钮或按下Alt键 | | 添加候选数 | 在候选数模式下,输入数字会以小字形式显示在格子中 | | 删除候选数 | 在候选数模式下,再次点击相同数字即可删除 | | 清除所有候选数 | 点击"🗑️ 清除候选数"按钮(需确认) | **候选数模式提示:** - 候选数模式开启时按钮显示"✏️ 候选数模式(开)" - 候选数模式关闭时按钮显示"✏️ 候选数模式(关)" - 再次按下Alt键可关闭候选数模式 - 候选数模式下输入的数字不会计入最终答案 **智能候选数功能:** - 在非候选数模式下填入数字时,会自动清除同一行、同一列、同一宫中其他格子的相同数字候选数 - 如果输入的数字与当前格子相同,会直接清除该格子的数字和候选数 ### 其他功能 | 功能 | 方法 | |------|------| | 获取提示 | 点击"💡 提示"按钮,根据当前盘面给出逻辑提示并高亮相关格子(目标格子显示粗边框,证据格子显示细边框) | | 排查冲突 | 点击"🔎 排错"按钮,高亮当前棋盘中有冲突的格子(红色高亮显示2秒后自动消失) | | 填充候选数 | 点击"🧩 填充候选数"按钮,自动为所有空格填充候选数(仅更新有变化的格子,功能关闭时会提示可在设置中开启) | | 清除数字 | 点击"🧹 清除用户数字与候选数"按钮,清空所有用户填写的数字和候选数(需确认) | | 保存游戏 | 点击"💾 保存"按钮,保存到当前存档位 | | 读取游戏 | 点击"📂 读取"按钮,从存档位读取游戏 | | 导出题目 | 点击"📤 导出"按钮,可导出当前题目 | | 导入题目 | 点击"📥 导入"按钮,可导入外部题目 | --- ## 📊 难度等级 游戏提供六种难度级别: | 难度 | 说明 | 适合人群 | |------|------|----------| | 启蒙 | 移除约22个数字 | 新手入门、轻松练习 | | 入门 | 移除约30个数字 | 初学者、休闲玩家 | | 进阶 | 移除约38个数字 | 有一定经验的玩家 | | 精英 | 移除约46个数字 | 进阶玩家、挑战者 | | 大师 | 移除约54个数字 | 数独高手、硬核挑战 | | 专家 | 移除约60个数字 | 极限挑战、资深高手 | **切换难度:** - 点击顶部难度显示区域,选择"启蒙"、"入门"、"进阶"、"精英"、"大师"或"专家" - 难度按钮文案统一为4字描述:新手友好、轻松练手、均衡挑战、进阶挑战、高强挑战、极限挑战 - 选择难度后会自动开始新游戏 --- ## 🎯 闯关模式 闯关模式内置300关,难度会随着关卡逐步提升: - 点击底部“闯关模式”打开关卡列表 - 每关固定题目,通关后在关卡列表中标记已通关 - 关卡列表显示最佳用时,刷新页面后仍会保留 - 闯关模式的存档会显示对应关卡编号 - 题目按关卡号作为种子并按难度区间生成,同一关每次打开题目一致 - 每一关题面都不相同 --- ## ⚙️ 设置选项 点击右下角"⚙️ 设置"按钮可打开设置面板: - 点击设置面板底部的"关闭"按钮可关闭面板 ### 1. 主题切换 - **浅色模式**:明亮背景,适合白天使用 - **深色模式**:暗色背景,保护视力,适合夜间使用 ### 2. 辅助功能 - **即时查错**(可开关):输入错误数字时显示红色提示并增加错误计数,默认关闭 - 开启后,输入数字时会检查是否有冲突 - 如果有冲突,会显示冲突类型(行内有冲突/列内有冲突/九宫格内有冲突) - 冲突的格子会以红色高亮显示2秒 - 错误数字不会被填入,但错误计数会增加 - **高亮辅助行/列/宫**(可开关):选中格子时,高亮显示所在行、列和宫,默认关闭 - **相同数字高亮**(可开关):选中某个数字时,棋盘上所有相同数字都会高亮显示,默认关闭 - **排查冲突**(可开关):开启后可使用排错按钮高亮冲突格子,默认关闭 - **九宫格边框**(可开关):显示3×3宫格的粗边框,默认关闭 ### 3. 游戏设置 - **自动保存**:每次操作后自动保存游戏进度到"current"存档位 - **错误计数**:记录错误次数 - **提示功能**(可开关):默认关闭,开启后可使用提示按钮 - **填充候选数**(可开关):默认关闭,开启后可使用填充候选数按钮 ### 4. 快捷键设置 - 点击输入框即可修改功能按钮快捷键 - 点击输入框后按下快捷键,会自动回显组合键 - 提供“重置快捷键”按钮,可一键恢复默认快捷键 --- ## 💾 存档系统 游戏提供6个存档位,可以保存不同的游戏进度: | 存档位 | 说明 | |--------|------| | 存档1 | 主存档位 | | 存档2 | 备用存档位 | | 存档3 | 额外存档位 | | 存档4 | 额外存档位 | | 存档5 | 额外存档位 | | 存档6 | 额外存档位 | **存档操作:** 1. 点击"💾 保存"按钮 2. 选择要保存的存档位 3. 游戏进度会被保存到本地存储 4. 若当前棋盘没有任何数字(未开始新游戏),将无法保存 **读取操作:** 1. 点击"📂 读取"按钮 2. 选择要读取的存档位 3. 游戏进度会被加载 **保存提示:** - 当开始新游戏、进入闯关关卡、导入数独或读取存档时,如果当前棋盘有内容,会先询问是否保存并可选择存档位 **自动保存:** - 游戏会自动保存到"current"存档位 - 每次操作后都会自动保存 - 刷新页面后会自动恢复上次的游戏状态 - 撤销/重做时,错误次数和提示次数会随状态一起恢复 --- ## 🎨 界面说明 ### 顶部状态栏 - 左侧:当前难度 - 中间:错误次数(❌)、计时器(⏱️)、已用提示次数(💡) - 右侧:主题切换按钮(🌗) - **触屏提示**:在触屏设备上,点击状态栏项目会显示对应的提示文字 ### 棋盘区域 - 9×9的数独棋盘 - 3×3宫格边框(可在设置中开启) - 选中格子显示蓝色背景 - 相同数字显示浅蓝色背景 - 错误数字显示红色 ### 数字九宫格 - 位于棋盘下方、功能按钮区上方 - 点击数字即可输入到当前选中格子 ### 操作按钮区 - **候选数模式**:切换候选数输入模式 - **擦除**:清除选中格子的数字 - **撤销**:撤销上一步操作 - **重做**:重做已撤销的操作 - **填充候选数**:自动填充空格的候选数(功能关闭时会提示可在设置中开启) - **提示**:给出当前盘面的逻辑提示并高亮相关格子(目标格子粗边框,证据格子细边框) - **排错**:高亮当前棋盘中有冲突的格子(需在设置中开启) - **清除候选数**:清除所有候选数(需确认) - **清除用户数字与候选数**:清除所有用户填写的数字和候选数(需确认) - 功能按钮下方显示快捷键提示(可在设置中修改,默认:撤销 Ctrl+Z、擦除 Backspace、候选数模式 Alt、填充候选数 F、清除候选数 C、提示 H、排错 X、清除用户数字与候选数 Delete) ### 底部功能按钮 - **新游戏**:开始新游戏 - **闯关模式**:进入闯关模式 - **保存**:保存游戏进度 - **读取**:读取游戏进度 - **导出**:导出当前题目 - **导入**:导入外部题目 --- ## ⌨️ 快捷键 默认快捷键(可在设置中修改): | 快捷键 | 功能 | |--------|------| | 1-9 | 输入数字 | | Backspace | 擦除选中格子数字 | | Ctrl+Z | 撤销 | | Ctrl+Y | 重做 | | Alt | 开启/关闭候选数模式 | | F | 填充候选数 | | C | 清除所有候选数 | | H | 获取提示 | | X | 排错 | | Delete | 清除所有用户数字与候选数 | --- ## 💡 提示功能详解 提示功能提供七种逻辑提示类型,帮助玩家推理: ### 1. 单一候选 - **说明**:某个格子只有一个可能的候选数字 - **提示示例**:`单一候选:第 5 行第 3 列只能填 7` - **高亮**:目标格子(粗边框)+ 所在行、列、宫中的已填数字(细边框) ### 2. 隐性唯一(行) - **说明**:某个数字在某行只能出现在一个格子中 - **提示示例**:`隐性唯一:第 3 行数字 5 只能在第 3 行第 7 列` - **高亮**:目标格子(粗边框)+ 该行中的已填数字(细边框) ### 3. 隐性唯一(列) - **说明**:某个数字在某列只能出现在一个格子中 - **提示示例**:`隐性唯一:第 4 列数字 2 只能在第 6 行第 4 列` - **高亮**:目标格子(粗边框)+ 该列中的已填数字(细边框) ### 4. 隐性唯一(宫) - **说明**:某个数字在某宫只能出现在一个格子中 - **提示示例**:`隐性唯一:第 5 宫数字 9 只能在第 4 行第 6 列` - **高亮**:目标格子(粗边框)+ 该宫中的已填数字(细边框) ### 5. 成对排除 - **说明**:某行/列/宫内两个格子只剩相同的两个候选数字,其他位置不能再出现这两个数字 - **提示示例**:`成对排除:第 2 行第 3 列与第 8 列只剩 4、7,其余位置不能出现` - **高亮**:目标格子(粗边框)+ 受影响的空格(细边框) ### 6. 宫内锁定 - **说明**:某宫内某个数字只能出现在同一行或同一列,可从该行/列的其他格子排除该数字 - **提示示例**:`宫内锁定:第 1 宫数字 7 只能出现在第 1 行,其他位置可排除` - **高亮**:目标格子(粗边框)+ 受影响的空格(细边框) ### 7. 行列锁定 - **说明**:某行/列内某个数字的候选只落在同一宫,可从该宫其他格子排除该数字 - **提示示例**:`行列锁定:第 2 行数字 7 只在第 3 宫出现,该宫其他位置可排除` - **高亮**:目标格子(粗边框)+ 受影响的空格(细边框) **提示优先级**: 1. 如果选中了某个空格子,优先检查该格子是否为单一候选 2. 否则按顺序检查所有格子的单一候选 3. 然后检查行、列、宫的隐性唯一 4. 再检查宫内锁定与行列锁定 5. 最后检查行、列、宫的成对排除 **高亮说明**: - **目标格子**(hint-target):2px 粗边框 + 蓝色背景 - **证据格子**(hint-evidence):1px 细边框 + 浅蓝色背景 - 每次点击提示会先清除上一条提示的高亮 --- ## 💡 游戏技巧 ### 初学者技巧 1. **从简单开始**:先从简单难度开始练习 2. **使用候选数**:不确定的数字先用候选数标记 3. **关注唯一数**:寻找只能填入一个数字的格子 4. **排除法**:通过排除不可能的数字来缩小范围 ### 进阶技巧 1. **宫格排除**:在3×3宫格内,如果某个数字只能出现在一个格子,就填入该格子 2. **行列排除**:在行或列中,如果某个数字只能出现在一个格子,就填入该格子 3. **候选数法**:为每个格子列出所有可能的候选数字 4. **成对排除**:如果两个格子只能填入相同的两个数字,可以从其他格子中排除这两个数字 ### 高级技巧 1. **X-Wing**:利用数字在两行两列中的特定排列进行排除 2. **Swordfish**:X-Wing的扩展,涉及三行三列 3. **XY-Wing**:利用三个格子之间的候选数关系进行排除 4. **链式推理**:通过逻辑链推导出必然结论 --- ## 🔧 导入导出功能 ### 导出题目 1. 点击"📤 导出"按钮 2. 选择导出格式: - **导出初始数独**:只包含预填数字,其他位置为空位 - **导出当前数独**:包含所有已填数字(包括预填和用户填写的) 3. 复制导出的文本 4. 若当前棋盘没有任何数字(未开始新游戏),将无法导出 ### 导入题目 1. 点击"📥 导入"按钮 2. 在输入框中粘贴题目字符串 3. 点击"导入"按钮 4. 游戏会自动加载导入的题目 **题目格式说明:** - 使用字母标记区分数字来源: - `a` 表示预填数字(题目初始给出的数字) - `b` 表示用户填写的数字 - `0a` 表示空位(未填写的格子) - 每行9个数据,用空格分隔 - 共9行,对应9×9的数独棋盘 **题目格式示例:** ``` 5a 3a 0a 0a 7a 0a 0a 0a 0a 6a 0a 0a 1a 9a 5a 0a 0a 0a 0a 9a 8a 0a 0a 0a 0a 6a 0a 8a 0a 0a 0a 6a 0a 0a 0a 3a 4a 0a 0a 8a 0a 3a 0a 0a 1a 7a 0a 0a 0a 2a 0a 0a 0a 6a 0a 6a 0a 0a 0a 0a 2a 8a 0a 0a 0a 0a 4a 1a 9a 0a 0a 5a 0a 0a 0a 0a 8a 0a 0a 7a 9a ``` **格式详解:** - `5a` 表示格子中预填了数字5 - `0a` 表示格子为空 - `5b` 表示用户填写的数字5(仅在导出当前数独时出现) --- ## 🌟 特色功能 ### 1. 完全本地化 - 无需联网,离线可用 - 所有数据保存在浏览器本地存储 - 隐私安全,不上传任何数据 ### 2. 响应式设计 - 适配电脑、平板、手机等多种设备 - 触屏优化,操作流畅 - 自动适应屏幕大小 ### 3. 智能提示 - 错误数字实时提示(可在设置中开启) - 相同数字高亮显示(可在设置中开启) - 进阶提示:支持单一候选、隐性唯一等逻辑提示并高亮相关区域 ### 4. 完整的历史记录 - 支持撤销和重做 - 可以回退到任意步骤 - 不会丢失游戏进度 ### 5. 主题切换 - 浅色/深色主题 - 保护视力 - 个性化体验 --- ## ❓ 常见问题 **Q: 游戏数据会丢失吗?** A: 游戏数据保存在浏览器本地存储中,只要不清除浏览器缓存,数据就不会丢失。 **Q: 可以在手机上玩吗?** A: 可以,游戏完全适配移动设备,支持触屏操作。 **Q: 如何分享题目给朋友?** A: 使用导出功能,将题目字符串分享给朋友,朋友可以通过导入功能加载题目。 **Q: 游戏有答案吗?** A: 提示功能不会直接填数,而是给出当前盘面的逻辑提示并高亮相关区域。只要填满所有格子且与正确答案一致,即视为游戏胜利。 --- ## 📝 更新日志 ### 最新版本 - ✅ 候选数模式使用Alt键切换 - ✅ 添加清除所有候选数功能 - ✅ 调整功能按钮为两列布局 - ✅ 提示功能升级为逻辑提示 --- ## 🎉 开始游戏 现在你已经了解了所有功能,点击"新游戏"开始你的数独之旅吧! 祝你游戏愉快!🎊