I like good turn-based offline games. Recently, the kids brought home one that I won’t name here because my GitHub Pagesโbacked browser game is a shameless copy.
If you want to play it (free and safe): https://marcelpetrick.github.io/recognizer/
๐ง๐ต๐ฒ ๐ฟ๐๐น๐ฒ๐ ๐๐ฎ๐ธ๐ฒ ๐๐ฒ๐ป ๐๐ฒ๐ฐ๐ผ๐ป๐ฑ๐ ๐๐ผ ๐ฒ๐ ๐ฝ๐น๐ฎ๐ถ๐ป: ๐๐ธ๐ฐ ๐ค๐ข๐ณ๐ฅ๐ด. ๐๐ช๐จ๐ฉ๐ต ๐ด๐บ๐ฎ๐ฃ๐ฐ๐ญ๐ด ๐ฆ๐ข๐ค๐ฉ. ๐๐น๐ข๐ค๐ต๐ญ๐บ ๐ฐ๐ฏ๐ฆ ๐ฎ๐ข๐ต๐ค๐ฉ. ๐๐ถ๐ป๐ฑ ๐๐ต๐ฒ ๐บ๐ฎ๐๐ฐ๐ต ๐ณ๐ฎ๐๐๐ฒ๐ฟ ๐๐ต๐ฎ๐ป ๐๐ผ๐๐ฟ ๐บ๐ฎ๐๐ฒ๐.
It is super simple, but pattern matching requires concentration, and you have to be quick. ๐๐’๐ ๐ด๐ฟ๐ฒ๐ฎ๐ ๐ณ๐๐ป ๐ฒ๐๐ฒ๐ป ๐ฎ๐ ๐ฎ ๐๐ถ๐ป๐ด๐น๐ฒ ๐ฝ๐น๐ฎ๐๐ฒ๐ฟ with a local high-score list.
Building it raised three useful questions:
* ๐๐ผ๐ ๐ฑ๐ผ ๐๐ผ๐ ๐ด๐๐ฎ๐ฟ๐ฎ๐ป๐๐ฒ๐ฒ that rule across all ๐,๐๐๐ possible card pairs?
* ๐๐ผ๐ ๐ฑ๐ผ ๐๐ผ๐ ๐๐๐ฟ๐ป a shared game into a good single-player challenge?
* ๐๐ผ๐ ๐บ๐๐ฐ๐ต ๐ถ๐ป๐ณ๐ฟ๐ฎ๐๐๐ฟ๐๐ฐ๐๐๐ฟ๐ฒ does a small browser game actually need?
The mathematical part uses a finite projective plane. ๐ง๐ต๐ฒ ๐๐ฒ๐๐ ๐๐๐ถ๐๐ฒ ๐๐ฒ๐ฟ๐ถ๐ณ๐ถ๐ฒ๐ ๐ฒ๐๐ฒ๐ฟ๐ ๐ฝ๐ผ๐๐๐ถ๐ฏ๐น๐ฒ ๐ฐ๐ฎ๐ฟ๐ฑ ๐ฝ๐ฎ๐ถ๐ฟ.
The product stays deliberately small: 10, 20, or 50 cards, a timer, and local high scores. ๐๐ฐ ๐ข๐ค๐ค๐ฐ๐ถ๐ฏ๐ต๐ด. ๐๐ฐ ๐จ๐ญ๐ฐ๐ฃ๐ข๐ญ ๐ณ๐ข๐ฏ๐ฌ๐ช๐ฏ๐จ๐ด. ๐๐ฐ ๐ฃ๐ข๐ค๐ฌ๐ฆ๐ฏ๐ฅ.
๐ ๐๐ถ๐ฑ๐ฒ ๐ป๐ผ๐๐ฒ ๐ณ๐ผ๐ฟ ๐๐ต๐ผ๐๐ฒ ๐ถ๐ป๐๐ฒ๐ฟ๐ฒ๐๐๐ฒ๐ฑ ๐ถ๐ป ๐๐ผ๐ณ๐๐๐ฎ๐ฟ๐ฒ ๐ฑ๐ฒ๐น๐ถ๐๐ฒ๐ฟ๐
I also used the project as a compact, end-to-end SDLC example: written requirements, scope, and acceptance criteria; separated and testable domain logic; versioned storage with migration handling; unit, component, browser, mobile, and accessibility tests; formatting, linting, type checking, and build gates; locked dependencies with automated updates; and repeatable PWA deployment through GitHub Actions and GitHub Pages.
๐๐ ๐ฒ๐จ๐ฎ ๐ญ๐ก๐ข๐ง๐ค ๐ฒ๐จ๐ฎ ๐๐ซ๐ ๐ช๐ฎ๐ข๐๐ค๐๐ซ: ๐ฉ๐ฅ๐๐ฒ ๐๐ง๐ ๐ฉ๐จ๐ฌ๐ญ ๐ฒ๐จ๐ฎ๐ซ ๐ฌ๐๐จ๐ซ๐ ๐ค


