shithub: puzzles

Download patch

ref: 294a3ac6e703c2820ceb7b28a1a5492b61e9a531
parent: ed682bd5c608156d12ebaa2d84c4ce2e2877c10a
author: Ben Harris <bjh21@bjh21.me.uk>
date: Thu Feb 2 17:26:24 EST 2023

Dominosa: require the two halves of a domino to be adjacent

Also that a line indicating no domino be between adjacent squares.
Without this, execute_move would allow you to place dominos and edges
between any pair ot squares, and then generate assertion failures
("execute_move: Assertion `d2 - w >= 0' failed." and "execute_move:
Assertion `d1 - w >= 0' failed.") when a domino was placed over an
invalid edge.  This example save file demonstrates the problem:

SAVEFILE:41:Simon Tatham's Portable Puzzle Collection
GAME    :8:Dominosa
PARAMS  :1:6
CPARAMS :1:6
DESC    :56:55521461210004364611033535444421636022603153156422620503
NSTATES :1:3
STATEPOS:1:3
MOVE    :4:E0,2
MOVE    :4:D0,2