chiark / gitweb /
Pattern: randomise rounding bias in generate().
authorSimon Tatham <anakin@pobox.com>
Sat, 23 Sep 2017 18:22:37 +0000 (19:22 +0100)
committerSimon Tatham <anakin@pobox.com>
Sat, 23 Sep 2017 18:24:16 +0000 (19:24 +0100)
commitff218728c6953ede1957ddb5b039bcb2ba920a44
treee02d2701b8ec37c234de603ffa8d1595114d050b
parentb8313181a6104624000e9cc008e8e26b67aeb655
Pattern: randomise rounding bias in generate().

Now, with an odd grid size, we choose the posterisation threshold so
that half the time it delivers ceil(n/2) black squares and half the
time it delivers floor(n/2). Previously it only did the former, which
meant that asking Pattern to generate a 1x1 puzzle (with the bug in
the previous commit fixed) would always generate the one with a single
black square, and never the one with a single white square. Both are
trivial to solve, of course, but it seemed inelegant!

No change to the number of black squares in the puzzle solution can
constitute a spoiler for the player, of course, because that number is
trivial to determine without doing any difficult reasoning, just by
adding up all the clues in one dimension.
pattern.c