/ecv-queens

ECV Application : N Queens

Primary LanguageC++

ECV - Sudoku

🌟 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.

example

How to build/install

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

Example usage

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 😁

Acknowledgements

This article was pretty useful, especially to realize the concept of "primary/secondary" constraints in exact-cover problems.