🌟 Exact cover problem - N Queens application 🌟
Graphic toy written in C++/Qt to solve the N Queens problem.
Under the hood, it uses the ECV library that implements Donald Knuth's Algorithm X.
Dependencies :
- Qt5 (Qt5::Widgets Qt5::Svg packages)
- ecv (as a submodule)
Start by getting the sources :
[~/git] git clone https://github.com/MericLuc/ecv-queens.git
[~/git] git submodule update --init --recursive
Then, the easiest way to build is to use it as a QtCreator project.
Otherwise, you can build from command-line using cmake and defining a bunch of Qt related variables.
It should be something like that (not garanteed) :
[~/builds] cmake -S ${PATH_TO_PROJECT} -B ${PATH_TO_BUILD} -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH=${PATH_TO_QT_INSTALL}
[~/builds] make
Play in your browser using a webassembly compiled version.
Rules :
- Hover a cell to select it.
- Left-click to add/remove a queen to a cell.
- For the rest, I think the UI buttons are self-explanatory 😁
This article was pretty useful, especially to realize the concept of "primary/secondary" constraints in exact-cover problems.