mirror of
https://github.com/Rockbox/rockbox.git
synced 2025-11-17 00:52:38 -05:00
puzzles: resync with upstream
This brings puzzles to upstream commit 84d3fd2. Change-Id: I808a197f868032d771fc101a15666c5ec4b9f94b
This commit is contained in:
parent
ea679de837
commit
b9386109e8
26 changed files with 1037 additions and 583 deletions
|
|
@ -310,7 +310,18 @@ static void generate(random_state *rs, int w, int h, unsigned char *retgrid)
|
|||
fgrid2 = snewn(w*h, float);
|
||||
memcpy(fgrid2, fgrid, w*h*sizeof(float));
|
||||
qsort(fgrid2, w*h, sizeof(float), float_compare);
|
||||
threshold = fgrid2[w*h/2];
|
||||
/* Choose a threshold that makes half the pixels black. In case of
|
||||
* an odd number of pixels, select randomly between just under and
|
||||
* just over half. */
|
||||
{
|
||||
int index = w * h / 2;
|
||||
if (w & h & 1)
|
||||
index += random_upto(rs, 2);
|
||||
if (index < w*h)
|
||||
threshold = fgrid2[index];
|
||||
else
|
||||
threshold = fgrid2[w*h-1] + 1;
|
||||
}
|
||||
sfree(fgrid2);
|
||||
|
||||
for (i = 0; i < h; i++) {
|
||||
|
|
@ -448,6 +459,8 @@ static int do_row(unsigned char *known, unsigned char *deduced,
|
|||
|
||||
if (rowlen == 0) {
|
||||
memset(deduced, DOT, len);
|
||||
} else if (rowlen == 1 && data[0] == len) {
|
||||
memset(deduced, BLOCK, len);
|
||||
} else {
|
||||
do_recurse(known, deduced, row, minpos_done, maxpos_done, minpos_ok,
|
||||
maxpos_ok, data, len, freespace, 0, 0);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue