没有优化前的设计过程
该程序的核心思想是设计一个Sudoku的类.
Sudoku类
它包含如下变量:
| 变量名 | 说明 |
|---|---|
| arry[SCALE][SCALE] | 记录9*9棋盘上的数字 |
| rows,cols | 棋盘的行数和列数 |
| IsOver | 判断dfs是否结束 |
| count | 记录解棋盘中要填入位置的个数 |
| index100]3] | 记录每个要填入位置的坐标 |
| IfRows[10][10] | 记录第i行是否存在j |
| IfCols[10][10] | 记录第i列是否存在j |
| grid[10][10] | 记录第i个3*3格是否存在j |
| Tgrid[10][10] | 记录第i个3*3格是否存在j |
| base[9] | 存放生成终局基准序列 |
它包含如下成员函数:
| 函数名 | 说明 |
|---|---|
| Sudoku | 构造函数,初始化棋盘,全设置为0 |
| Create | 随机生成一个终局棋盘,更新类 |
| dfs | 根据行列进行深搜,用于生成终局 |
| FillFile | 将棋盘写入相应的文件 |
| GetFile | 从指定文件中读取残局,更新类 |
| Solv | 根据棋盘0的个数,进行的深搜,用于解数独 |
| GeneratingEndgame | 利用终局,挖空生成一个残局 |
| Check | 审核提交的数独,判断是否符合要求 |
SudokuGUI类
它包含如下变量:
| 变量名 | 说明 |
|---|---|
| Sudoku | 棋盘 |
它包含如下成员函数:
| 函数名 | 说明 |
|---|---|
| FillSudoku | 向tablewidget中填入残局数字 |
| SubmitSudoku | 提交检查棋盘是否成功 |
| ChangeSudoku | 向棋盘中填入数字时触发,保存到Sudoku变量中 |

本文档详述了Sudoku程序的设计过程,包括Sudoku类和SudokuGUI类的定义,以及命令行程序和GUI界面的流程。在优化后,Sudoku类的创建方式和数独终局的生成算法得到改进,提高了效率。GUI界面则保持不变,依旧包括开始、提交和退出按钮,以及单元格改变的信号处理。
最低0.47元/天 解锁文章
&spm=1001.2101.3001.5002&articleId=103833172&d=1&t=3&u=2be5ba93525a4dddaaef71b73bd85bc9)
1377

被折叠的 条评论
为什么被折叠?



