nx_folkgame_race_gate.nx
buildroot/runtime/nx_folkgame_race_gate.nx
about
nx_folkgame_race_gate.nx -- GATE for the race (track) family of nx_folkgame_race_lib.
THE LOAD-BEARING TOOTH IS T2/T3: the opening pip count is 167 PER SIDE. That is a published
constant of the game -- two checkers 24 points from home, five 13, three 8, five 6 -- not a number
this estate picked. It is checked for BOTH players because a single side proves almost nothing: an
off-by-one in the track indexing, a reversed direction, or a pip formula that reads the wrong end
would still let ONE side total 167 by luck. Both sides landing on it at once pins the direction,
the indexing and the formula together.
T6 IS THE OTHER HALF: a race is not deterministic but a REPLAY of one must be. The randomiser's
seed lives inside the saved position, so the same seed must produce the same sequence -- and a
SECOND seed must produce a different one, or the tooth would pass on a die that always returns the
same face.
license_tier: ORIGINAL No hw writes (Rule 26).
dependencies 2 imports · 0 importers
imports: nx_folkgame_race_lib.nxnx_gate_verdict.nx
imported by: nobody (leaf or entry point)
call flow from main pre-order; caps 40 nodes / depth 6 declared; ↻ = already shown
structs
| none |
consts
| 17 | const FGRG_SPEC: *u8 = "knowledge/compare/folkgames.race" |
| 19 | const FGRG_PIP: i64 = 167 |
| 20 | const FGRG_TRACK: i64 = 24 |
| 21 | const FGRG_PIECES: i64 = 15 |
| 25 | const FGRG_SEED_A: i64 = 20260827 |
| 26 | const FGRG_SEED_B: i64 = 99999937 |
| 27 | const FGRG_ROLLS: i64 = 64 |
| 28 | const FGRG_PLIES: i64 = 200 |
functions
| 30 | func fgrg_slen(s: *u8) -> i64 { var n: i64 = 0; while s[n] != (0 as u8) { n = n + 1 } return n } called by 1: main |
| 32 | func main() -> i64 |