实现一个命令行程序,程序能:
1、生成不重复的数独终局文件
2、读取文件内的数独问题,求解并将结果输出到文件
生成终局
1、在命令行中使用-c参数加数字N(1<=N<=1000000)控制生成数独终局的数量,例如下述命令将生成20个数独终局至文件中:
sudoku.exe -c 20
2、将生成的数独终局用一个文本文件(假设名字叫sudoku.txt)的形式保存起来,每次生成的txt文件需要覆盖上次生成的txt文件,文件内的格式如下,数与数之间由空格分开,终局与终局之间空一行,行末无空格:
3、程序在处理命令行参数时,不仅能处理格式正确的参数,还能够处理各种异常的情况,如:
sudoku.exe -c abc
4、在生成数独矩阵时,左上角的第一个数为:(学号后面两位相加)% 9 + 1。例如学生A学号后两位是80,则该数字为(8+0)% 9 + 1 = 9,那么生成的数独棋盘应如下(x表示满足数独规则的任意数字):
求解数独
1、在命令行中使用-s参数加文件名的形式求解数独,并将结果输出至文件,如:
sudoku.exe -s absolute_path_of_puzzlefile
程序将从路径中读取数独题目,并将数独题目的一个可行解输出至与sudoku.exe同目录的sudoku.txt中,要求与生成终局相同。
2、格式如下,其中0代表空格,题目与题目之间空一行,行末无空格,最后一个数独题目后无空行:
3、sudoku.txt的格式如下(与生成终局的要求相同):
4、数独题目个数N(1<=N<=1000000),保证文件中数独格式正确。