Special case in dead-end checking which prevents the solver falling

over on a grid containing a 0 (completely blank) tile. This can't
happen in self-generated grids, but can happen if you type in a grid
from another Net implementation. Previously, the solver would notice
(technically correctly!) that a completely blank tile connects to no
other tiles and thus forms an isolated subgraph, and would therefore
complain that no orientation of that tile could possibly yield a
valid solution...

[originally from svn r5828]
This commit is contained in:
Simon Tatham
2005-05-22 11:45:20 +00:00
parent fc3f16b364
commit 0066cdd62a

2
net.c
View File

@ -657,7 +657,7 @@ static int net_solver(int w, int h, unsigned char *tiles,
* dead ends of size 2 and 3 forms a subnetwork
* with a total area of 6, not 5.)
*/
if (deadendtotal+1 < area)
if (deadendtotal > 0 && deadendtotal+1 < area)
valid = FALSE;
} else if (nnondeadends == 1) {
/*