Puzzle solving library, written in Rust.
Go to file
David Wang 7e908457a2 Add equality constraint.
This is a very simple equality constraint.  It only assigns a variable
when all other variables in the equation have been assigned.  Possible
improvements:

- We can find the min and max range by considering the coefficients
  and the max and min values of the other variables in the equation.

- When there are only 2 variables remaining, we can eliminate the
  incompatible candidates and then substitute one variable for the
  other in other constraints.
2017-03-01 08:04:09 +11:00
src Add equality constraint. 2017-03-01 08:04:09 +11:00
tests Only wake affected constraints. 2017-02-25 08:17:07 +11:00
.gitignore Initial commit: puzzle solver. 2017-02-18 08:21:54 +11:00
.travis.yml Add Travis CI metadata. 2017-02-18 08:28:20 +11:00
Cargo.toml Add crates.io metadata. 2017-02-26 07:54:03 +11:00
LICENCE-MIT.txt Add licence (MIT). 2017-02-18 08:25:56 +11:00
README.md Add README. 2017-02-26 07:54:02 +11:00

Puzzle Solver Version Status

About

Solve logic puzzles by simply describing the puzzle's rules as constraints. This is suitable for solving puzzles with integer variables such as Sudoku.

Examples

A few example programs are provided in the tests/ directory:

To clone this repository, run:

git clone https://github.com/wangds/puzzle-solver.git

Then build the library and run the test programs using Cargo.

cargo test --test sudoku -- --nocapture

Basic Usage

Add Puzzle Solver as a dependency to your project's Cargo.toml:

[dependencies]
puzzle-solver = "0.1"

Documentation

Author

David Wang