Add invariant tests for maze, runner, pinball and siege data tables

Aperta
#32 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
4/5
Tempo stimato
3-5 giorni
Idoneità per principianti
55/100
Tipo di issue
Funzionalità
Chiarezza
Specificata chiaramente
Stato di attività
Attiva
Stack tecnologico
typescript

Direzione di ricerca

Start by reading the listed tables in games/maze/maze.ts, games/maze/config.ts, games/runner/patterns.ts, and games/pinball/table.ts, then check how games/runner/scenes/GameScene.ts consumes runner patterns. games/siege/sprites.ts imports Phaser, so its data needs a Phaser-free home before Node can load it. Add checks for the listed invariants and make them pass in CI; the issue notes there is no test suite yet.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

severity: low testing

Summary

Hand-edited ASCII and coordinate tables depend on constants defined elsewhere. A one-character typo compiles cleanly and only shows up in play: a chaser stuck in the house, an unreachable dot, or a Runner crash on an empty pattern pool.

Where

  • games/maze/maze.ts:8-72, games/maze/config.ts:8-9, games/maze/config.ts:46
  • games/runner/patterns.ts:31-45, games/runner/scenes/GameScene.ts:293-300
  • games/pinball/table.ts:19-86
  • games/siege/sprites.ts:1, games/siege/sprites.ts:8-31 (imports Phaser, so its data cannot be loaded in node)

Suggested fix

Maze

  • MAZE has ROWS rows of length COLS, each a palindrome
  • wrapX wraps both edges; the tunnel row is open at both ends
  • The door cell is not open; the house exit and bonus cell are open
  • Exactly 4 power cells; dot count exceeds the highest bonus threshold
  • A flood fill from the player start reaches every dot and power cell

Runner

  • At least one pattern has minLevel 0; all minLevel values are within the level cap
  • Every piece lies within its pattern length; solid pieces do not overlap

Pinball

  • All coordinates are finite; arch segments share endpoints and join the side walls
  • Flipper pivots are symmetric; target and lane counts match the trophy text

Siege

  • Move the art and scoring tables to a Phaser-free module, then assert equal-width rows, matching frame sizes and a points value for every row kind

Acceptance criteria

  • The cases above pass in CI

Getting started

  • Relevant files: games/maze/maze.ts, games/maze/config.ts, games/runner/patterns.ts, games/pinball/table.ts, games/siege/sprites.ts
  • Run locally: npm install, then npm run dev
  • Checks: npm run typecheck and npm run build (there is no test suite yet)
  • Related docs: README.md

Filed by repo-audit/full-audit at b001f5d. Severity: low. Effort: M. audit-key: testing|games/maze/maze.ts|MAZE

Lingua principale
TypeScript
Stelle
3
Fork
3
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Preparare l'ambiente

Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di TMHSDigital/GH-Arcade

Tutte le issue di TMHSDigital/GH-Arcade

Issue simili

Altre issue su TypeScript

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.