<commit_before>README for Sudoku

The design pattern follows MVC.

The VIew simply prints the board to the terminal at appropriate points.  Other information may also be output.  The View module is encapsulated to hopefully allow substitution with a GUI interface later.

The Controller begins with main.  It invokes the controller to get a puzzle (from stdin or a file argument).  Once the game (in the Model) is initialized, the Controller and model interaction involves solve steps.  See Stewart's web app for an idea of how the steps might be presented.

The Model encapsulates the grid and the solving regime.

Controller.cpp - calls routine in Puzzle.cpp to get the initial grid.

Sudoku.cpp - Model

View.cpp - print routines, mostly.

----------------------------------------

Initial checkin: backtracking solutions are working in shame::solve() in solve.cpp.

<commit_msg>Cleanup of initial README<commit_after>README for Sudoku

The design pattern follows MVC, insofar as I am able to apply it.

The View module's job in this simple terminal incarnation is to print the board to stdout at appropriate points. 
Other information may also be output.  The View module is encapsulated to hopefully allow substitution with a GUI
interface later.

The Controller begins with main(),  which invokes a Controller routine to get a puzzle (from the sole file
command-line argument).  Once the game (in the Model) is initialized, the Controller and Model interaction involves solve steps, though in the initial version, backtracking is the only solve step.  See <NAME>'s web app
(www.sudokuwiki.org/sudoku.htm) for an idea of how the steps might be presented as they are implemented.

sudoku.cpp, solve.cpp - the Model which encapsulates the grid and the solving regime.

controller.cpp - main program flow logic, and in charge of getting input.

View.cpp - just print routines in the initial terminal version.

Phase I is to get solving working as a terminal application, reading the puzzle givens from the lone file argument,
and adding human-friendly solve steps like Crosshatching/Scanning, Full House, Single Alternative, etc.

----------------------------------------

Initial checkin: backtracking solution is working in sgame::solve() in solve.cpp.


{'fraction_non_alphanumeric': 0.07705934455270151, 'fraction_numerical': 0.0, 'mean_word_length': 3.6290983606557377, 'pattern_counts': {'":': 0, '<': 4, '<?xml version=': 0, '>': 4, 'https://': 0, 'lorem ipsum': 0, 'www.': 1, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '5229641', 'n_tokens_mistral': 560, 'n_tokens_neox': 528, 'n_words': 322}