diff options
| author | Simon Tatham <anakin@pobox.com> | 2021-10-21 20:39:09 +0100 |
|---|---|---|
| committer | Simon Tatham <anakin@pobox.com> | 2021-10-21 20:39:09 +0100 |
| commit | 49d28f2204dfbb21156d98b0313399c8126b59e0 (patch) | |
| tree | 021acce1d694c21f6a73d9eed51e706e51f4c594 | |
| parent | 42cbd7688a7f05e0a5d56a603a04293307c1e1b2 (diff) | |
| download | puzzles-49d28f2204dfbb21156d98b0313399c8126b59e0.zip puzzles-49d28f2204dfbb21156d98b0313399c8126b59e0.tar.gz puzzles-49d28f2204dfbb21156d98b0313399c8126b59e0.tar.bz2 puzzles-49d28f2204dfbb21156d98b0313399c8126b59e0.tar.xz | |
Tents: fix bias in tent placement.
In the very first stage of game generation, we're supposed to pick 1/5
of the grid squares to put tents in, in a uniformly random manner. It
failed to be uniform, because I had the wrong limit in random_upto -
but it was too small rather than too large, so it never overran the
buffer in a way that something like ASan or valgrind would have caught.
| -rw-r--r-- | tents.c | 2 |
1 files changed, 1 insertions, 1 deletions
@@ -998,7 +998,7 @@ static char *new_game_desc(const game_params *params_in, random_state *rs, int dy, dx; bool ok = true; - which = i + random_upto(rs, j); + which = i + random_upto(rs, w*h - i); tmp = order[which]; order[which] = order[i]; order[i] = tmp; |