diff --git a/bedstead.c b/bedstead.c index 35e3b40..952825e 100644 --- a/bedstead.c +++ b/bedstead.c @@ -4389,12 +4389,14 @@ select_hints(int nstems, int stems[nstems], for (;most > 0; most--) { /* Prefer long stems. */ for (int i = 0; i < nstems; i++) { - if (stems[i] == most) { - hints[i] = hint_stem; - stems[i] = 0; + /* Prefer outer stems. */ + int ii = i % 2 ? nstems - 1 - i / 2 : i / 2; + if (stems[ii] == most) { + hints[ii] = hint_stem; + stems[ii] = 0; /* Disallow overlapping stems. */ - if (i >= 1) stems[i-1] = 0; - if (i < nstems - 1) stems [i+1] = 0; + if (ii >= 1) stems[ii-1] = 0; + if (ii < nstems - 1) stems [ii+1] = 0; } } }