个人项目之数独游戏

1.首先给出我的Github地址:https://github.com/noton-leslie/noton

2.时间安排:

计划:预计耗时三天

任务需要:一周半

需求分析:一周

生成设计文档:

设计复审:30分钟

代码规范:10分钟

具体设计:10分钟

具体编码:两周半

代码复审:一周

测试:三天

报告:

测试报告:30分钟

计算工作量:30分钟

总结并提出改进计划:一小时

3.

刚拿到这个题目的时候其实我是懵逼的,因为我对数独一点了解都没有,甚至连他的基本规则都不懂。所以我在最初的半周一直在玩数独的游戏,希望能在玩游戏之中找到规律,但是找了半周还是没找到啥规律,被逼无奈之下只能找大佬们讨论,希望大佬能给出解题意见,或者给我启发一点思路。但是身边的大佬都还没做,我就讲这个项目搁置在旁边了。又过了一周才又开始设计代码,终于有了思路开始写,但是这个代码对我这种程度的学生来说难度实在有点大,所以写了大概两周半,一直到清明假期结束都没有写完,然后写完之后进行调试运行了放在Github,终于完成了此次项目。

4.经过大佬点拨,我的思路是这样的:

   1)任意交换两种数字得到的新数独仍成立。
  2)九宫格的任意两行或两列交换结果仍是一个新数独
  3)  综上数字交换交换顺序有8!种 ,共有4w多总换法,而九宫格内的交换一个九宫格有6中三个九宫格有6^3种。结合这两个完全就够100w种数独的生成只需要一个数独作为模板
  4) 采用 回溯法进行暴力搜索,先将空行存下来进行暴力求解,就很简单。

综上:分为生成数独与解数独两部分,其中生成树独需要一个函数,解数独写了一个回溯函数和判断当前是否正确的函数。还有解析命令行的部分,我在Github中找了一份开源的代码贴了上去。

5、

生成数独用了大佬的输出挂,优化比较明显。

然后解数独部分因为是用的暴力,感觉优化难度大,就没搞了,如果开多线程可能优化效果很明显。

6、没啥好展示的,就回溯法暴力.......(瑟瑟发抖)

7、时间:前前后后一共花出去大概四周时间吧,不过现在提交好像也是零分了,其实也有点开心有点难受的,开心的是自己第一次做了项目还知道了Github怎么用,难受的是付出了这么多辛苦还是只能得零分。

8、


猜你喜欢

转载自blog.csdn.net/qq_41431680/article/details/79952838