没有优化前的设计过程
该程序的核心思想是设计一个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变量中 |