Starting the game, and through the main menu,
the player can :
Start a new game
Load previously saved game
Configure some parameters (colors, preferred editor, puzzle symmetry,preffered png)
exit the program
PLAYING THE GAME
After choosing the n New Game option, the player can select the level of difficulty.
The user will be presented with the known 9x9 sudoku matrix.
Using the shortcuts in the shown cheatsheet table, the player can
Shortcuts
Action
hjkl 🠄 🠅🠇🠆
Move Cursor
[1-9]
Insert Number
0,␣,␈
Clear Cell
E
Earmark cells
H
Toggle Highlight Numbers
I
Toggle show Info (key cheatsheet)
P
Pause Game
S
Save Game
z,Z
Undo / Redo
M
Return to Main Menu
Q
Show Solution & Quit
Typing H while the cursor is on a number, e.g. 2, will highlight all the 2s in the matrix.
Typing H again will undo the highlighting:
-Typing E and entering up to 3 digits, will earmark the cell:
Entering an illegal number (a number that already exists in the row, the line or the 3x3 block) will mark the number with a different color, and give a warning message:
While the Moption returns to the Main Menu, and the S option saves the game, the Q option prints the solution and exits:
The user can also Undo or Redo their entries with the z or Z option respectively.
Back in the Main Menu, the player can also
Load a previously saved game with the l option
Configure preferred colors, preferred text editor and puzzle symmetry with the c option
or Browse the Top Ten Scores (s option)
The configuration is kept in the $HOME/.config/tui-sudoku/tui-sudoku.config file.
If there is no file kept there, default values will be loaded.
You can select the colors you like and the respective codes as they demonstrated here:
I initially tried to incorporate past attempts to generate a sudoku 9x9 matrix, even added a backtracking routine that would detect and exclude duplicate solutions. Unfortunately, the whole process of generating a new puzzle was taking about 30". What is more, the outcome, although symmetrical and all, was not what I wanted. The routines were in c. You can have a look if you like:
Yeah, I'm totally seeing why using qqwing was easier, better and more robust.
It's the all-around-better way to do that and the developers of that thing probably already spend more time thinking about those problems than we'll ever do.