You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
85 lines
2.0 KiB
85 lines
2.0 KiB
1 year ago
|
#include "SudokuMatrix.h"
|
||
|
#include <time.h>
|
||
|
|
||
|
|
||
|
/**
|
||
|
* @brief 测试随机生成数独矩阵
|
||
|
*/
|
||
|
void testRandomMatrix(){
|
||
|
SudokuMatrix* matrix = CreateMatrix();
|
||
|
RandomMatrix(matrix);
|
||
|
PrintMatrix(matrix);
|
||
|
DeleteMatrix(matrix);
|
||
|
}
|
||
|
|
||
|
|
||
|
/**
|
||
|
* @brief 测试判断数独矩阵的函数
|
||
|
*
|
||
|
*/
|
||
|
void testJudgeMatrix(){
|
||
|
SudokuMatrix* matrix = CreateMatrix();
|
||
|
RandomMatrix(matrix);
|
||
|
JudgeMatrix(matrix);
|
||
|
DeleteMatrix(matrix);
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* @brief 测试求解数独矩阵的函数
|
||
|
*
|
||
|
* @param matrix_used 0: board0; 1: board1; 2: board2
|
||
|
*/
|
||
|
void testSolveMatrix(int matrix_used){
|
||
|
int board0[9][9] = {{5, 3, 0, 0, 7, 0, 0, 0, 0},
|
||
|
{6, 0, 0, 1, 9, 5, 0, 0, 0},
|
||
|
{0, 9, 8, 0, 0, 0, 0, 6, 0},
|
||
|
{8, 0, 0, 0, 6, 0, 0, 0, 3},
|
||
|
{4, 0, 0, 8, 0, 3, 0, 0, 1},
|
||
|
{7, 0, 0, 0, 2, 0, 0, 0, 6},
|
||
|
{0, 6, 0, 0, 0, 0, 2, 8, 0},
|
||
|
{0, 0, 0, 4, 1, 9, 0, 0, 5},
|
||
|
{0, 0, 0, 0, 8, 0, 0, 7, 9}};
|
||
|
int board1[9][9] = {{8, 3, 0, 0, 7, 0, 0, 0, 0},
|
||
|
{6, 0, 0, 1, 9, 5, 0, 0, 0},
|
||
|
{0, 9, 8, 0, 0, 0, 0, 6, 0},
|
||
|
{8, 0, 0, 0, 6, 0, 0, 0, 3},
|
||
|
{4, 0, 0, 8, 0, 3, 0, 0, 1},
|
||
|
{7, 0, 0, 0, 2, 0, 0, 0, 6},
|
||
|
{0, 6, 0, 0, 0, 0, 2, 8, 0},
|
||
|
{0, 0, 0, 4, 1, 9, 0, 0, 5},
|
||
|
{0, 0, 0, 0, 8, 0, 0, 7, 9}};
|
||
|
int board2[9][9] = {{5, 2, 0, 0, 7, 0, 0, 0, 0},
|
||
|
{6, 0, 0, 1, 9, 5, 0, 0, 0},
|
||
|
{0, 9, 8, 0, 0, 0, 0, 6, 0},
|
||
|
{8, 0, 0, 0, 6, 0, 0, 0, 3},
|
||
|
{4, 0, 0, 8, 0, 3, 0, 0, 1},
|
||
|
{7, 0, 0, 0, 2, 0, 0, 0, 6},
|
||
|
{0, 6, 0, 0, 0, 0, 2, 8, 0},
|
||
|
{0, 0, 0, 4, 1, 9, 0, 0, 5},
|
||
|
{0, 0, 0, 0, 8, 0, 0, 7, 9}};
|
||
|
|
||
|
SudokuMatrix* matrix;
|
||
|
switch (matrix_used){
|
||
|
case 0:
|
||
|
matrix = CreateMatrixFromArray(board0);
|
||
|
break;
|
||
|
case 1:
|
||
|
matrix = CreateMatrixFromArray(board1);
|
||
|
break;
|
||
|
case 2:
|
||
|
matrix = CreateMatrixFromArray(board2);
|
||
|
break;
|
||
|
}
|
||
|
SudokuMatrix* result = CreateMatrix();
|
||
|
SolveMatrix(matrix, result);
|
||
|
DeleteMatrix(matrix);
|
||
|
DeleteMatrix(result);
|
||
|
}
|
||
|
|
||
|
|
||
|
int main(){
|
||
|
// 初始化随机数种子
|
||
|
srand(time(NULL));
|
||
|
// 自选你要调用(用来测试)的函数
|
||
|
testSolveMatrix(0);
|
||
|
}
|