fix tracks to all be EW. no more NS tracks

This commit is contained in:
Jesse
2026-08-05 01:00:11 -04:00
parent 821d3cdffa
commit 2d348e1ecf
16 changed files with 1157 additions and 355 deletions
+19 -5
View File
@@ -760,7 +760,14 @@ figures moved, and only because Gap 10 replaced an assumption with real numbers.
## Gap 11 — Track card orientation
**Status:** DECIDED — orientation is chosen when the card is placed.
**Status:** DECIDED — orientation is chosen when the card is placed, but the choice is **two
rotations, not free rotation**. See the amendment at the end of this section.
> **AMENDED by the 45° geometry.** Measuring `docs/tracks.png` settled what this gap was guessing at:
> the through track is east-west across the middle of every card, there is no north-south track at
> all, and a printed card turns 180° but never flips. So a straight has ONE orientation, and a curve
> or turnout has two — the pair its printed handedness allows. The rest of this section is the
> reasoning that got there, kept because it is how the decision was reached.
**The problem.** Gap 4a fixed the track mix at turnout ×6, straight ×3, run-around ×3. But a track
card has an **orientation**, and nothing says what any of them is.
@@ -824,11 +831,18 @@ to build — hard to guarantee, and easy to break whenever the deck is retuned.
*Why not (c), rotationally symmetric cards.* It discards §A.1 entirely, one of the game's most
characterful rules.
**Implemented.** `variantsFor()` in `src/engine/track.ts` enumerates the rotations — 2 for a straight,
6 for a turnout, 2 for a run-around — and the chosen index rides the `cardPlayed` event, so replay
reproduces the same layout.
**Implemented.** `variantsFor(geometry, hand)` in `src/engine/track.ts` enumerates the rotations —
**1 for a straight** (east-west, and turning it gives the same card back) and **2 for a curve or
turnout** (0° sends the 45° leg south, 180° sends it north). The chosen index rides the `cardPlayed`
event, so replay reproduces the same layout.
**Consequence for print-and-play.** Card art must read correctly at any rotation the card allows.
Handedness is not a supply label: it IS the diagonal the 45° leg lies on. A left-hand card reaches
`sw` and `ne`, a right-hand card `se` and `nw`, and two stacked cards join only when their legs share
a diagonal. That is what makes the 4-left/4-right split of the curve and turnout supply meaningful,
and why a run-around needs one card of each hand.
**Consequence for print-and-play.** Card art must read correctly upside down — every track card is
laid at 0° or 180°, and nothing is ever turned on its side.
---