A touch-first math game for ages 8–12. Solve falling math problems by tapping the right answer before it hits the bottom!
- Tap Start to begin
- A math question appears at the top of the screen
- Colorful shapes fall from above — each labeled with an answer
- Tap the correct shape before it falls off the bottom
- Hit the ‖ pause button anytime — the question hides so no peeking!
| Action | Points |
|---|---|
| Correct answer | +3 |
| Wrong answer | −1 |
| Missed the right answer | Game over |
Every 20 points the shapes fall faster. Try to beat your high score!
All four operations are included, with age-appropriate number ranges:
- Addition & Subtraction — numbers 1–50
- Multiplication & Division — factors 2–12, clean results only
Wrong answer choices are always plausible (close to the real answer) so you can't just guess.
- TypeScript + HTML5 Canvas — no framework, lightweight custom game loop
- Vite — dev server and production bundler
- Web Audio API — synthesized sound effects (no audio files)
- PointerEvent API — unified touch and mouse input
martinb35.github.io/mathy — works in any modern browser. Tap "Install" in Chrome/Edge to add it to your home screen as an app.
Requires Node.js ≥ 20.19.0 (see .nvmrc).
npm install
npm run devThen open http://localhost:5173/ in a browser (works with touch or mouse).
npm run build # Production build → dist/
npm test # Run all unit tests
npm test -- src/question.test.ts # Run a single test file
npx tsc --noEmit # Type-check onlySee backlog.md for planned features.