diff --git a/README.md b/README.md index 58c1472..acfbf25 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,53 @@ # Sudoku Solver Figured it would be fun to try making a sudoku solver. I haven't read -any prior art but once I have something working I might look into -faster mechanisms people have come up with (probably using SAT -solvers). +any prior art as of yet, though I might at some point to improve +this. I found [this +dataset](https://www.kaggle.com/datasets/rohanrao/sudoku) to use for +testing and benchmarking; it contains 9 million puzzles. I haven't +included the dataset in this repository as it's quite big (around 1.4 +GiB), but you can download the archive from the above link and place +the extracted `sudoku.csv` in the root of this repo and it should +work. + +## Building + +The program is built with `make(1)`: + +```shell +make # or 'make sudoku' +``` + +## Preparation of Puzzles File + +I did some pre-processing of the downloaded `sudoku.csv` file to +reduce the workload of the solver, extracting just the puzzles (the +CSV contains the solutions too) and removing the newlines. + +```shell +make puzzles +``` + +## Preparation of Results File + +The results file must exist and be of the right size in order for the +program to run successfully. + +```shell +make results +``` + +## Running + +The program can be ran through the Makefile, which will ensure the +binary is built and the puzzles and results files have been prepared: + +```shell +make run +``` + +Or it can of course be ran directly: + +```shell +./sudoku +```