#include "SudokuMatrix.h" #include /** * @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); }