M2: tåg med tidtabell, spärrar med kort, skyltar, vinst/förlust
All checks were successful
release / build-release (push) Successful in 1m35s
All checks were successful
release / build-release (push) Successful in 1m35s
- level: Schedule (ankomst/intervall/uppehåll) med Status(t), spårnummer, avgift, skylttexter per i-ruta, Path (BFS) och UngatedPlatforms – regeln att perronger bara nås via spärrar testas för alla banor - sim.Run: klocka, tågkort (saldo dras vid spärr, tomt kort stoppas), ombordstigning med Enter när tåget är inne, vinst/förlust; headless bot-test klarar bana 001 och förlorar på fel tåg - game: perronginfo (avgår om / nästa tåg om), skyltruta, nekad spärr, tågvagn som ritas när tåget är inne, inforutan flyttas upp när spelaren står nära nederkanten; resultat med spärrpassager och saldo - bana 001 ombyggd så spärrarna är flaskhalsar; bana 002 omgenererad med spärrar runt perrongerna och skylttexter - tools/shots räknar ut vägar med BFS; skriptkommandot waittrain - docs/README/wiki uppdaterade med nya bilder Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
@@ -58,7 +58,7 @@ metro-puzzle-jp/
|
||||
│ ├── res/ hittar och läser resources/ (ren Go)
|
||||
│ ├── rng/ seedad slump (ren Go)
|
||||
│ ├── level/ banformat, validering, BFS (ren Go)
|
||||
│ ├── sim/ rutbaserad rörelse, kollision, kamera (ren Go)
|
||||
│ ├── sim/ rutbaserad rörelse, kollision, kamera, banomgång (Run: klocka, kort, spärrar, tåg) – ren Go
|
||||
│ ├── game/ Ebitengine-loop, scener, input, rendering, skriptläge ← får använda Ebitengine
|
||||
│ ├── archtest/ beroenderegler
|
||||
│ └── … kommande: lang/, nav/, score/, save/, minigame/, ui/, audio/
|
||||
@@ -140,18 +140,27 @@ på **brasse-linux01-runnern** (label `linux-amd64`), aldrig på Pi5:n.
|
||||
det naturliga slutet på en bana; tidtabell, spärrar och väntan på tåg
|
||||
kommer i M2 som planerat.
|
||||
|
||||
### M2 – Stationen: tåg, spärrar och vinst/förlust → första spelbara banan
|
||||
### M2 – Stationen: tåg, spärrar och vinst/förlust ✓ (klar 2026-10-23)
|
||||
|
||||
- **Mål:** bana 001 går att klara och misslyckas.
|
||||
- Tåg med tidtabell som står vid perrongen en stund och avgår; nästa avgång
|
||||
visas vid perrongen.
|
||||
- Spärrar som kräver kort (kortet finns och har alltid saldo i M2).
|
||||
- Vinst när rätt tåg tas; förlust när fel tåg tas. Resultatskärm.
|
||||
- Interaktion med skyltar (visar text, än så länge på svenska/engelska).
|
||||
- **Teknik:** `internal/sim/schedule`, `internal/level` utökas med
|
||||
tidtabell + skyltinnehåll.
|
||||
- **Klar när:** en simuleringstest låter en bot klara bana 001 headless;
|
||||
manuellt spel från start till mål fungerar.
|
||||
- Tåg med tidtabell per perrong (`schedule`: första ankomst, intervall,
|
||||
uppehåll). Tågvagnen ritas bortom perrongkanten när tåget är inne; HUD:en
|
||||
visar spår, linje, resmål och "avgår om / nästa tåg om".
|
||||
- Ombordstigning är ett aktivt val: stå på perrongen och tryck Enter medan
|
||||
tåget är inne. Rätt tåg = vinst, fel tåg = förlust, resultatskärm med tid,
|
||||
steg, spärrpassager och kortsaldo.
|
||||
- Spärrar kräver kort med saldo (startsaldo 2000 ¥, avgift per bana, dras
|
||||
när man går in i en spärr från en vanlig ruta). Tomt kort stoppas med
|
||||
meddelande. Riktig ekonomi och påfyllning kommer i M6.
|
||||
- Skyltar har text (`signs` i bandatan, sv/en/ja) som visas när man står
|
||||
stilla på skyltrutan. Japanskan ritas först i M3.
|
||||
- **Regel för banor:** alla perronger ska ligga innanför spärrar.
|
||||
`level.UngatedPlatforms` kontrolleras i det datadrivna testet; bana 001
|
||||
byggdes om när regeln avslöjade två genvägar.
|
||||
- **Teknik:** `internal/sim.Run` (klocka, kort, spärrlogik, ombordstigning –
|
||||
ren Go), `level.Schedule`, `level.Path` (BFS), skriptkommandot `waittrain`.
|
||||
- **Klar när:** `TestBotWinsLevel001` låter en bot gå kortaste vägen,
|
||||
passera spärren, vänta in tåget och kliva på – headless. ✓
|
||||
|
||||
### M3 – Japanska och skyltsystemet
|
||||
|
||||
|
||||
Reference in New Issue
Block a user