Extract game rules from Phaser scenes into testable modules
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 4/5
- Tempo estimado
- 3-5 dias
- Facilidade para iniciantes
- 49/100
- Tipo de issue
- Refatoração
- Clareza
- Razoavelmente clara
- Status de atividade
- Ativa
- Stack de tecnologia
- typescript
Direção de pesquisa
Start with games/stack/logic.ts and its existing patterns, then inspect games/snake/scenes/GameScene.ts and games/maze/scenes/GameScene.ts; the issue recommends working one game per commit. First establish tests for Stack, then identify the rules and state transitions to extract from Snake and Maze without importing Phaser. Done when both games’ rules have unit tests and the trophy thresholds are checked through a shared helper.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
Summary
Stack keeps its rules in a Phaser-free logic.ts. The other nine games keep state, rules, input, audio, HUD and drawing in one scene class, leaving no seam to test. These are the largest and most-changed files in the repo.
Where
games/maze/scenes/GameScene.ts:231-531(movement, chaser targeting, scoring; 650 lines, 32 methods)games/snake/scenes/GameScene.ts:226-374games/stack/logic.ts:104-206(the pattern to follow)
Details
Trophy score thresholds are also inline magic numbers duplicated against the trophy descriptions (for example games/maze/scenes/GameScene.ts:492 against shared/achievements.ts:66).
Suggested fix
One game per commit, starting with the most-changed:
- Add tests for
games/stack/logic.tsfirst to prove the setup. - Snake: extract step, turn buffer, growth, collision and speed-up into
games/snake/logic.tsas pure functions with tests, then have the scene call them. - Maze: extract chaser targeting, speed rules and catch detection into
games/maze/chase.tswith tests. - Move score thresholds next to the trophy definitions and check them through one shared helper.
Acceptance criteria
- At least Snake and Maze rules are covered by unit tests that do not import Phaser
Getting started
- Relevant files:
games/stack/logic.ts,games/snake/scenes/GameScene.ts,games/maze/scenes/GameScene.ts,games/breakout/scenes/GameScene.ts - Run locally:
npm install, thennpm run dev - Checks:
npm run typecheckandnpm run build(there is no test suite yet) - Related docs:
README.md
Filed by repo-audit/full-audit at b001f5d. Severity: medium. Effort: L. audit-key: tech-debt|games/maze/scenes/GameScene.ts|GameScene
- Linguagem predominante
- TypeScript
- Estrelas
- 3
- Forks
- 3
- Métricas de merge de PRs
- Nenhum PR com merge em 30d
Preparar o ambiente
Este projeto não oferece contêiner de desenvolvimento, Dockerfile nem guia de contribuição, então a configuração fica por sua conta: comece pelo README e veja nosso guia da primeira contribuição para os passos gerais.
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de TMHSDigital/GH-Arcade
-
enhancement good first issue severity: low
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 82/100
TMHSDigital/GH-Arcade#50 ·
-
enhancement good first issue severity: medium
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 86/100
TMHSDigital/GH-Arcade#47 ·
-
documentation good first issue severity: low
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
TMHSDigital/GH-Arcade#34 ·
-
documentation good first issue severity: low
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
TMHSDigital/GH-Arcade#33 ·
-
dependencies good first issue severity: low
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 85/100
TMHSDigital/GH-Arcade#27 ·
Todas as issues de TMHSDigital/GH-Arcade
Issues semelhantes
-
automated-triage type/bug type/ci
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
Mantenedores costumam responder em até 1 dia
-
📦 expo-router Android contributor: external needs review sdk-58 severity: medium
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
expo/expo#53436 · 1 comentário ·
Mantenedores costumam responder em até 1 dia
-
Translate the READMEAbertadocumentation good first issue
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 84/100
asasemahmed/openboard#68 ·
Mantenedores costumam responder em até 1 dia
-
bug good first issue
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 72/100
-
Document PowerShell shell semantics and read-only Bash deduplication in Built-in Tools referenceAbertadocumentation
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100