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
+10 -1
View File
@@ -330,7 +330,16 @@ export function allReachable(
* stubs above and below so this is satisfiable from the opening Stage.
*/
export function canPlaceAt(area: OfficeArea, coord: GridCoord, card: TrackCard): boolean {
if (cardAt(area, coord)) return false;
const existing = cardAt(area, coord);
// A Limits sign on the Running Track is the GROWTH POINT, not an obstacle. Extending means laying
// the card where the sign stands and moving the sign outward (§2.1, Gap 4a) — the physical act at
// the table. Treating the sign as occupied forced players to build PAST it, stranding the sign
// mid-track with everything beyond it nominally outside their own Limits.
const isMovableSign =
existing?.geometry.kind === 'limits' &&
coord.row === area.runningRow &&
existing.standing.length === 0;
if (existing && !isMovableSign) return false;
const ports: Port[] = ['n', 's', 'e', 'w'];
for (const p of ports) {