various fixes. added version#s and added a playable browser build of the solitaire game (including deploy to filebrowser script)

This commit is contained in:
Jesse
2026-07-31 22:03:13 -04:00
parent 160190da3f
commit 2eca9de09f
16 changed files with 2399 additions and 401 deletions
+5 -1
View File
@@ -252,7 +252,11 @@ function placementCandidates(s: GameState, player: PlayerIndex): GridCoord[] {
// Q7 — a district hangs BELOW the Running Track; there is nothing above it.
if (c.row > area.runningRow) continue;
const k = `${c.row},${c.col}`;
if (area.grid.has(k) || seen.has(k)) continue;
if (seen.has(k)) continue;
// The Limits signs are candidates even though they are occupied: laying track there is how
// the Running Track grows, and the sign moves outward (§2.1). `check` still has the final say.
const occupied = area.grid.get(k);
if (occupied && !(occupied.geometry.kind === 'limits' && c.row === area.runningRow)) continue;
seen.add(k);
out.push(c);
}