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.
103 lines
2.4 KiB
103 lines
2.4 KiB
#include "SudokuMatrix.h"
|
|
#include <time.h>
|
|
|
|
|
|
/**
|
|
* @brief 测试输出数独矩阵
|
|
*/
|
|
void testPrintMatrix(){
|
|
int array[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}};
|
|
SudokuMatrix* matrix = CreateMatrixFromArray(array);
|
|
PrintMatrix(matrix);
|
|
DeleteMatrix(matrix);
|
|
}
|
|
|
|
/**
|
|
* @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);
|
|
} |