Commit Graph

14 Commits

Author SHA1 Message Date
David Wang
5bb52b03f2 Add simple variable substitution for constraints.
Constraints must now implement the substitution of "from" with "to".
The implementations can be sanity checked when we come to build the
list of constraints that each variable wakes up.

In the future, we would like to make the more general substitution:
from -> scale * to + constant.
2017-03-09 07:52:08 +11:00
David Wang
ddf425efe0 Automatically box constraints.
Puzzle.add_constraint() now takes a generic (unboxed) constraint,
making it more pleasant to use when adding custom constraints.
2017-03-08 07:57:19 +11:00
David Wang
6689b0106f Add test: Samurai Sudoku.
samuraisudoku_easy: 2 guesses.
2017-03-06 07:53:10 +11:00
David Wang
23ae2331bf Add test: Killer Sudoku.
killersudoku_wikipedia: 7 guesses.
2017-03-04 09:07:04 +11:00
David Wang
c93b9430c1 Add test: Kakuro.
kakuro_wikipedia: 9 guesses.
2017-03-04 08:57:52 +11:00
David Wang
dfda5961ef Add test: Sujiko.
sujiko_simetric: 4 guesses.

Note that the puzzle on Wikipedia does not specify the initial board
configuration and is not unique.
2017-03-04 08:16:33 +11:00
David Wang
d9f92e2baa Add test: Hidato.
hidato_wikipedia: 4 guesses.
2017-03-04 08:03:00 +11:00
David Wang
abb4cebce3 Equality: bound variable range by using min/max of other variables.
magicsquare_3x3: 873 -> 63 guesses.
magicsquare_4x4: 13475456 -> 539910 guesses (all solutions).
sendmoremoney_carry: 154 -> 6 guesses.
sendmoremoney_naive: 633681 -> 4 guesses.
zebra: 453 -> no guesswork!
2017-03-03 08:06:48 +11:00
David Wang
8e62c85bf5 Add test: Zebra puzzle (A.K.A. Einstein's riddle).
zebra: 453 guesses.
2017-03-02 08:42:46 +11:00
David Wang
57df25eb37 Add test: Magic Square.
magicsquare_3x3: 873 guesses.
magicsquare_4x4: 13475456 guesses (all solutions).
2017-03-02 08:25:29 +11:00
David Wang
67b7cb5dc6 Add test: Send More Money.
sendmoremoney_carry: 154 guesses.
sendmoremoney_naive: 633681 guesses.
2017-03-02 08:15:55 +11:00
David Wang
0477a5bbb0 Only wake affected constraints. 2017-02-25 08:17:07 +11:00
David Wang
6eb25f6af0 Add test: N-queens problem.
queens_4x4: 8 guesses.
queens_5x5: 21 guesses.
queens_6x6: 66 guesses.
queens_7x7: 179 guesses.
queens_8x8: 662 guesses.
2017-02-24 07:40:33 +11:00
David Wang
34e58114ea Add test: Sudoku.
sudoku_hardest: 1850 guesses.
sudoku_wikipedia: no guesswork!
2017-02-24 07:26:56 +11:00