mirror of
git://git.tartarus.org/simon/puzzles.git
synced 2025-04-22 00:15:46 -07:00
Game completion detection was occasionally failing to spot a
lingering GRID_UNKNOWN, causing it to declare victory too soon. [originally from svn r4954]
This commit is contained in:
@ -322,16 +322,16 @@ int compute_rowdata(int *ret, unsigned char *start, int len, int step)
|
||||
n = 0;
|
||||
|
||||
for (i = 0; i < len; i++) {
|
||||
if (start[i*step] == GRID_UNKNOWN)
|
||||
return -1;
|
||||
|
||||
if (start[i*step] == GRID_FULL) {
|
||||
int runlen = 1;
|
||||
while (i+runlen < len && start[(i+runlen)*step])
|
||||
while (i+runlen < len && start[(i+runlen)*step] == GRID_FULL)
|
||||
runlen++;
|
||||
ret[n++] = runlen;
|
||||
i += runlen;
|
||||
}
|
||||
|
||||
if (start[i*step] == GRID_UNKNOWN)
|
||||
return -1;
|
||||
}
|
||||
|
||||
return n;
|
||||
|
Reference in New Issue
Block a user