fix tracks to all be EW. no more NS tracks
This commit is contained in:
@@ -67,3 +67,10 @@ syntax**: no `enum`, no parameter properties, no namespaces. `tsconfig.json` enf
|
||||
- **State is `fold(events)`.** The event log is the source of truth, which is what gives reconnection,
|
||||
restart recovery and post-game replay from a single decision.
|
||||
- **Never call `Math.random()`.** One ambient random call silently breaks replay.
|
||||
- **The track is 45° geometry, not a graph on a grid.** Measured off `docs/tracks.png`: the through
|
||||
rail runs east–west across the *exact vertical middle* of every card, there is no north–south track
|
||||
anywhere, and everything that leaves through the north or south edge does so at **45°, through the
|
||||
middle of that edge**. So two ports meeting is not enough to make a rail — two 45° legs can meet at
|
||||
the same point and still form a V. Adjacency is `joins()` in `src/engine/track.ts`, never a bare
|
||||
pair of `hasPort()` calls. A printed card turns 180° but never flips, so its handedness fixes which
|
||||
diagonal its leg lies on for good, and a run-around needs one card of each hand.
|
||||
|
||||
Reference in New Issue
Block a user