Plateau jouable en PWA : interface, Web Worker, stockage, service worker

L'application est à la racine du site : plateau en SVG, saisie au toucher
(pion puis case d'arrivée, proposées à partir du moteur), boutons du jet,
du videau et de nouvelle partie, coup de l'ordinateur affiché avec son
temps, fin de partie, reprise depuis localStorage, aide lue dans les
copies de docs/. Le moteur tourne dans le Web Worker existant ; main.ts
est le seul assembleur (nouvelles règles dependency-cruiser). Le service
worker met tout le site en cache, avec une empreinte du contenu comme
version. Les pages de test du moteur passent sous /moteur/. Politique de
sécurité du contenu dans le Caddyfile ; make test-browser joue une partie
dans Chromium et Firefox sans écran (Playwright, hors de make test).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Pierre MARTIN
2026-11-02 21:47:12 +01:00
co-authored by Claude Opus 5.5
parent 613ff38254
commit a8636b3f83
37 changed files with 2548 additions and 106 deletions
+6 -1
View File
@@ -41,7 +41,7 @@ Les contenus pédagogiques (leçons, textes) sont sous licence CC BY-SA 4.0.
**Python 3** (licence PSF, compatible GPL), qui exécute le comparateur
`tests/reference/compare.py`, et **jq** (licence MIT), qui lit les JSON
dans `tests/test_reference.sh`. Aucun des deux n'est utilisé sur le PC.
Le serveur HTTP de Python sert aussi la page de test (`make deploy-web`).
Le serveur HTTP de Python sert aussi le site sur le réseau local (`make deploy`).
- **Emscripten** (licence MIT et University of Illinois/NCSA), image Docker
`emscripten/emsdk:3.1.64`, compile le moteur en WebAssembly
(`make engine-wasm`). Le code JavaScript qu'il génère
@@ -57,6 +57,11 @@ Les contenus pédagogiques (leçons, textes) sont sous licence CC BY-SA 4.0.
`docs/scenarios/` ; **dependency-cruiser** 18.6.0 (MIT), qui vérifie les
règles d'architecture. Ces outils et leurs dépendances servent seulement à
compiler et tester : rien n'est embarqué dans l'application.
- **Playwright** 1.48.2 (Apache-2.0), image Docker
`mcr.microsoft.com/playwright:v1.48.2-noble` (Chromium, Firefox, WebKit,
sous leurs licences libres) et paquet npm `playwright`, installé dans
`build/browser-tools/` : joue une partie dans des navigateurs sans écran
(`make test-browser`). Outil de test seulement, hors de `make test`.
## Serveur de production