Awesome
SoftwareEngineeringProject
华中科技大学 软件工程大作业 数独APP
组员
项目概述
希望可以通过App的形式将数独这一游戏带给大家,解决广告以及错误次数限制等问题.详情请见NABCD模型文档以及项目说明书
最终的数独以及安卓代码均在在SudokuApp-GS下,对
dlx
类也做了一些修改,如为了将其放到子线程中运行改为了Runable
的子类
具体实现
数独部分
实时生成具有唯一解的数独, 采用先生成终局后挖洞的方式,考虑到移动设备的算力可能不足的问题,使用了目前速度最快(待求证)的Dancing Links算法以来解数独,具体实现参考此论文以及此仓库, 挖洞参考了百度文库的一篇论文来提高挖洞效率,其中的剪枝操作极大的减少了挖洞所需要的时间.
安卓部分
速成, 主要参考郭霖的第一行代码,Google官方文档,以及
Material UI
的文档,由于各种原因,其实真正的开发时间没有很长
储存数据用到了LitePal、安卓原生提供的本地数据库以及SP
,由于种种不可抗力,没有实现真正的登录注册功能,只是在本地写了个假的。也没有提供显式的结算按钮,如需结算,请另开一局新的,旧的数据会被储存在历史中,即变相结算?
没有特殊原因应该不会继续完善
截图
<img src="imgs/九宫.png" style="height: 400px" alt="九宫"> <img src="imgs/四宫.png" style="height: 400px" alt="四宫"> <img src="imgs/历史.png" style="height: 400px" alt="查看历史">其他的部分实在太丑了,就不截图了。。。
TODO
数独类型
- 四宫
- 九宫
- 六宫
- 不规则
基本操作
- 填入/擦除数字
- 高亮同一列同一行以及同一个小方格的数字
- 实时纠错
- 方格内做笔记
- 计时/暂停
- 撤回
- 难度选择
- 提示指定方格
- 恢复上一次进度
模式选择
- 闯关模式
- 限时模式
- 联机模式
用户
- 登录注册 (Fake)
- 历史数据
其他
- 查看解题技巧
- 查看排名
- 国际化