aboutsummaryrefslogtreecommitdiff
path: root/Buildscr
diff options
context:
space:
mode:
authorSimon Tatham <anakin@pobox.com>2015-11-03 06:45:49 +0000
committerSimon Tatham <anakin@pobox.com>2015-11-03 06:59:47 +0000
commit13b67b9d09faf3440c0b96356d16ce841faa677f (patch)
tree07f937f482f3266fc45c7f38b662206b35e1ec91 /Buildscr
parentd60e348aae16e718e1e7cc2b6e090956eb7e4b52 (diff)
downloadpuzzles-13b67b9d09faf3440c0b96356d16ce841faa677f.zip
puzzles-13b67b9d09faf3440c0b96356d16ce841faa677f.tar.gz
puzzles-13b67b9d09faf3440c0b96356d16ce841faa677f.tar.bz2
puzzles-13b67b9d09faf3440c0b96356d16ce841faa677f.tar.xz
Fix loophole in Palisade completion checker.
A user pointed out that if you construct a 'solution' in which no clue square has too _many_ borders but at least one has too few, and then bring those clues up to their count by adding extra stray border lines _inside_ a connected component (avoiding actually dividing any component completely into two), then the game checker treats that as solved for victory-flash purposes, on the grounds that (a) the grid is divided into components of the right size and (b) all clues are satisfied. A small example is 4x4n4:22a2b2c33, with the non-solution of dividing the grid into four 2x2 square blocks and then adding a spurious extra edge between the two 3 clues. The old Palisade completion check would flash for victory _at the same time_ as highlighting the spurious edge in COL_ERROR. Fixed by enforcing in is_solved() that every border line must separate two distinct connected components.
Diffstat (limited to 'Buildscr')
0 files changed, 0 insertions, 0 deletions