- C++ Compiler with C++20 support
- Ncurses library and headers
- Windows or MacOS
- A terminal with color support
To compile the project on Windows, you will need build tools that give you access to Ncurses and its headers as well as an up to date version of gcc (supports at least C++20). The easiest way to get access to these, in my opinion was through MSYS2 though there are most likely other ways as well. If you are attempting to compile this project using the Makefile on a toolchain other than UCRT64 MSYS2, you will most likely have to alter the Makefile, specifically the include directories of CXXFLAGS in Makefile.win.
- Install MSYS2 (The Windows Makefile is set up for specifically the UCRT64 environment)
- Install dependencies
pacamn -S ncurses-devel ncurses base-devel make mingw-w64-ucrt-x86_64-gcc mingw-w64-ucrt-x86_64-make
- Clone the repository
git clone https://github.com/justinluque/COP-2006-SudokuCpp SudokuCpp/
cd SudokuCpp/
- Compile
make
If all goes well, an executable Sudoku.exe will be placed in the current directory.
-
https://www.eso.org/~ndelmott/ascii.html
Used to define ascii codes for ctrl characters
-
msys2/MINGW-packages#10312 (comment)
-DNCURSES_STATIC flag forces static linking which fixes compilation for MSYS2 toolchains
-
https://www.youtube.com/watch?v=3YiPdibiQHA
Used to create a menu TUI system with ncurses
-
https://www.youtube.com/watch?v=TjFXEUCMqI8
Cool one pass solution to checking whether a sudoku puzzle is valid
-
https://www.nature.com/articles/nature.2012.9751
Generally, a valid sudoku puzzle with a unique solution must have at least 17 clues