通用说明集中到题面,development 仅保留数独材料
This commit is contained in:
@@ -1,28 +1,12 @@
|
||||
# 第三题开发需求
|
||||
# 数独游戏详细需求
|
||||
|
||||
## 两条路线共用标准
|
||||
|
||||
1. 用 Swift 做出可交互的 App,界面优先采用 SwiftUI;能从开始到结束完成一条核心流程。
|
||||
2. 用户输入或选择会改变应用内容,并获得明确反馈。
|
||||
3. 核心用户数据保存在本地,彻底退出并重新启动后仍可恢复。
|
||||
4. 处理与本场景相关的异常或边界情况,不能只展示静态页面。
|
||||
5. 在[作品说明](project-notes.md)写清运行方法、实际完成情况与已知问题,能当面演示并讲解。
|
||||
|
||||
不要求登录、服务器、云同步、复杂架构或应用商店上架。额外功能不能代替核心流程。
|
||||
|
||||
## 路线 A:开发第二题方案
|
||||
|
||||
选择第二题中一个可完成的小版本。简要说明用户、核心操作、要保存的数据、至少两种边界情况的预期行为,以及与第二题设计不同的地方;可以引用第二题 PDF,不必重写长文。实现上述共同标准,功能应自然服务于自己的用途。
|
||||
|
||||
## 路线 B:数独游戏
|
||||
|
||||
### 游戏规则与范围
|
||||
## 游戏规则与范围
|
||||
|
||||
棋盘由 9 行、9 列组成,分为 9 个 3×3 宫。将空格填入 1–9,使每行、每列、每宫中的数字均不重复。初始数字不可修改。只有全部填满且满足规则才算完成;填满但有冲突不能判胜。
|
||||
|
||||
使用提供的[固定题库](sudoku-puzzles.json)即可,不要求随机生成数独或编写求解器。题库中的 0 表示空格,不能作为玩家填写的数字。
|
||||
|
||||
### 必须实现的功能
|
||||
## 必须实现的功能
|
||||
|
||||
| 编号 | 需求 | 可以检查的结果 |
|
||||
| --- | --- | --- |
|
||||
@@ -35,19 +19,19 @@
|
||||
|
||||
只需保留当前一局,不要求保存每道题的独立进度。重新打开 App 不应自动清空棋盘;完成后重新打开仍应显示已完成的棋盘或完成状态。
|
||||
|
||||
### 边界行为
|
||||
## 边界行为
|
||||
|
||||
- 没有选中格子或选中初始数字时,输入与擦除不改变棋盘。
|
||||
- 只允许填写 1–9;采用数字键盘或屏幕按钮均可,其他输入不得造成非法数据或崩溃。
|
||||
- 检查重复时忽略空格,并排除格子自身;不能把“不重复但尚未证明正确”直接当成完成。
|
||||
- 首次启动无保存记录时能正常选题或进入默认题;重新开始、换题与继续当前局应有清楚区分。
|
||||
|
||||
### 当面演示参考
|
||||
## 功能检查示例
|
||||
|
||||
选一题 → 尝试修改初始数字(应无效)→ 填入一个会重复的数字并检查 → 修改或擦除,反馈随之更新 → 退出并重新启动,题目及填写恢复 → 重新开始但取消,进度保留 → 确认重新开始,只保留初始数字 → 换题并重启,恢复新题。
|
||||
|
||||
另外准备展示一次合法完成,并验证“填满但有冲突”不会误判完成。可以提前准备接近完成的真实游戏进度;不要用固定成功页面代替判断逻辑。
|
||||
另外检查一次合法完成,并验证“填满但有冲突”不会误判完成。可用接近完成的棋盘进行检查,完成提示应由真实棋盘状态触发。
|
||||
|
||||
### 可选扩展
|
||||
## 可选扩展
|
||||
|
||||
计时、笔记候选数、撤销、提示、难度分级、随机出题、动画等均不要求。先完成基础需求,再按兴趣扩展。
|
||||
|
||||
Reference in New Issue
Block a user