Adds the Katan screen on top of the WALA-119 engine, built in separable layers so the look, wording, layout and interaction can each be changed alone: - CatanStyle: every colour and proportion (light/dark), via LocalCatanStyle - CatanText: every word on screen (pure functions of state) - CatanGeometry: lattice -> pixels and tap hit-testing (pure, unit-tested) - CatanInteraction: what is tappable and what a tap means, derived only from the engine's legal-move list (pure, unit-tested) - CatanBoardView / CatanPanels / CatanDialogs: stateless composables - CatanScreen: wiring to MatchController, portrait and landscape layouts - CatanPreviews: Android Studio previews of real positions - docs/UI-catan.md: how to adapt each layer, rules of the road, known gaps Wiring: PlayScreen branch, GameSetupScreen options (3-4 players, game to 5/8/10/12), and a GameDescriptor.devPreview flag so dev builds can open Katan while production still hides it until two-device play is verified. Tests: CatanGeometryTest, CatanInteractionTest, CatanTextTest, CatalogTest. Co-Authored-By: Claude Sonnet 5.5 <[email protected]> Claude-Session: https://claude.ai/code/session_01JdMNbY5hLR7FjtfEE712xG
50 lines
2.0 KiB
Markdown
50 lines
2.0 KiB
Markdown
# docs/
|
|
|
|
Conventions for this repo's documentation. Seeded at bootstrap (WALA-118).
|
|
|
|
## Per-game rules: `RULES-<game>.md`
|
|
|
|
Every game in `GameCatalog` gets one file describing how *this app* implements
|
|
it — not a generic rule dump. The rules code
|
|
(`app/src/main/java/org/prolibertate/games/game/<game>/`) is the source of
|
|
truth; the doc exists so a human or an agent can check intent against
|
|
behaviour without reading Kotlin first.
|
|
|
|
Naming: the catalogue id, lowercase, e.g. `crazy8s` → `RULES-crazy8s.md`.
|
|
|
|
| Game (catalogue id) | Rules doc |
|
|
| --- | --- |
|
|
| Backgammon | [RULES-backgammon.md](RULES-backgammon.md) |
|
|
| Checkers | [RULES-checkers.md](RULES-checkers.md) |
|
|
| Chess | [RULES-chess.md](RULES-chess.md) |
|
|
| Crazy 8s | [RULES-crazy8s.md](RULES-crazy8s.md) |
|
|
| Cribbage | [RULES-cribbage.md](RULES-cribbage.md) |
|
|
| Euchre | [RULES-euchre.md](RULES-euchre.md) |
|
|
| FreeCell | — (TODO) |
|
|
| Golf | [RULES-golf.md](RULES-golf.md) |
|
|
| Hearts | — (TODO) |
|
|
| Kaiser | [RULES-kaiser.md](RULES-kaiser.md) |
|
|
| Katan (catalogue id `catan`) | [RULES-catan.md](RULES-catan.md) |
|
|
| Klondike | — (TODO) |
|
|
| Mastermind | [RULES-mastermind.md](RULES-mastermind.md) |
|
|
| Morris | [RULES-morris.md](RULES-morris.md) |
|
|
| Peg solitaire | — (TODO) |
|
|
| Pirates | [RULES-pirates.md](RULES-pirates.md) |
|
|
| President | [RULES-president.md](RULES-president.md) |
|
|
| Pyramid | — (TODO) |
|
|
| Sequence | [RULES-sequence.md](RULES-sequence.md) |
|
|
| Spider | — (TODO) |
|
|
| Ta Yü | [RULES-tayu.md](RULES-tayu.md) |
|
|
| Wizard | [RULES-wizard.md](RULES-wizard.md) |
|
|
| Yahtzee | — (TODO) |
|
|
|
|
## Other docs
|
|
|
|
- Build, CI, releases and OTA are described in the CI section of the root
|
|
[README](../README.md).
|
|
- [UI-catan.md](UI-catan.md) — how the Katan screen is layered, and how to restyle,
|
|
re-copy or re-lay-out it without touching the rules.
|
|
- `licenses/` — third-party licences that must travel with the app
|
|
(Uncial Antiqua under the SIL OFL; the app itself is GPL-3.0, see `/LICENSE`).
|
|
- Repo-level agent notes live in [`CLAUDE.md`](../CLAUDE.md) at the root.
|