The mission of this assignment is to implement a "Sudoku game board" and interact with the user using a small set of commands that enable to initialize the game board. Your program must permit the user to see the game board, swap rows, columns, or areas of the board for randomization, verify the correctness of the board content, and erase values of the generated game board.
User can enter the following show, swap, verify, erase, and quit command:
Implementation requires you to utilize a structure holding "vector< vector< short> >" to represent the 9 x 9 game board. The main program is a mere loop to dispatch the execution of each read command.
The next example tells what are required to realize:
Welcome Sudoku Initializer!
> show
A B C D E F G H I
P 2 3 4 8 9 1 5 6 7
Q 5 6 7 2 3 4 8 9 1
R 8 9 1 5 6 7 2 3 4
S 3 4 5 9 1 2 6 7 8
T 6 7 8 3 4 5 9 1 2
U 9 1 2 6 7 8 3 4 5
V 1 2 3 7 8 9 4 5 6
W 4 5 6 1 2 3 7 8 9
X 7 8 9 4 5 6 1 2 3
> swap
Trying to swap rows Q and S...
- Rows P and S were swapped...
- Rows Q and T were swapped...
- Rows R and U were swapped...
> show
A B C D E F G H I
P 3 4 5 9 1 2 6 7 8
Q 6 7 8 3 4 5 9 1 2
R 9 1 2 6 7 8 3 4 5
S 2 3 4 8 9 1 5 6 7
T 5 6 7 2 3 4 8 9 1
U 8 9 1 5 6 7 2 3 4
V 1 2 3 7 8 9 4 5 6
W 4 5 6 1 2 3 7 8 9
X 7 8 9 4 5 6 1 2 3
> swap
Trying to swap columns H and G...
- Columns H and G were swapped...
> show
A B C D E F G H I
P 3 4 5 9 1 2 7 6 8
Q 6 7 8 3 4 5 1 9 2
R 9 1 2 6 7 8 4 3 5
S 2 3 4 8 9 1 6 5 7
T 5 6 7 2 3 4 9 8 1
U 8 9 1 5 6 7 3 2 4
V 1 2 3 7 8 9 5 4 6
W 4 5 6 1 2 3 8 7 9
X 7 8 9 4 5 6 2 1 3
> verify
- All columns, rows, and components are OK...
> erase
Erasing row P column F
> erase
Erasing row X column A
> show
A B C D E F G H I
P 3 4 5 9 1 - 7 6 8
Q 6 7 8 3 4 5 1 9 2
R 9 1 2 6 7 8 4 3 5
S 2 3 4 8 9 1 6 5 7
T 5 6 7 2 3 4 9 8 1
U 8 9 1 5 6 7 3 2 4
V 1 2 3 7 8 9 5 4 6
W 4 5 6 1 2 3 8 7 9
X - 8 9 4 5 6 2 1 3
> verify
- Found inconsistency in row P...
- Found inconsistency in row X...
- Found inconsistency in column A...
- Found inconsistency in column F...
- Found inconsistency in component starting at row P and column D...
- Found inconsistency in component starting at row V and column A...
> quit
Bye...