shithub: puzzles

Download patch

ref: 3cd51d001769c657ebb4184bd05343af4d7e12b1
parent: 232cbaf5a8affcb0c61f1355f0569efaae534ad9
author: Ben Harris <bjh21@bjh21.me.uk>
date: Thu Feb 16 10:54:17 EST 2023

Solo: cope with pencil marks when tilesize == 1

Solo's layout calculations for pencil marks could fail with a tilesize
of 1, generating an assertion failure: "draw_number: Assertion `pbest
> 0' failed."  This was reported as Debian bug #905852.

My solution is slightly silly, namely to change a ">" in the test for
whether a new layout is the best so far to ">=".  This allows for
finding a (terrible) layout even for tilesize == 1, and also has the
side-effect of slightly preserring wide layouts over tall ones.
Personally, I think that's an improvement.

--- a/solo.c
+++ b/solo.c
@@ -5133,7 +5133,7 @@
 		fw = (pr - pl) / (float)pw;
 		fh = (pb - pt) / (float)ph;
 		fs = min(fw, fh);
-		if (fs > bestsize) {
+		if (fs >= bestsize) {
 		    bestsize = fs;
 		    pbest = pw;
 		}