Claude Agent 510581345a play.html: try/catch în loader + .nojekyll
- inflateFromBase64url: prinde JSON corupt cu mesaj clar
- appendChild: prinde SyntaxError de browser cu mesaj util
- null-check pe #run element (race condition paranoia)
- .nojekyll: previne Jekyll să proceseze fișierele

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-14 17:02:48 +00:00

Escape Room Builder

▶ Demo live · Player universal

Generator de jocuri escape room intr-un singur fisier HTML, fara backend, fara build. Acelasi set de puzzle-uri poate fi exportat in 5 stiluri de joc diferite sau ca campanie multi-camera cu harta.

Builder-ul poate comprima jocul intr-un URL scurt si genera un cod QR printabil:

  1. Adauga puzzle-uri in editor
  2. Apasa „Generează QR / link" — apare QR-ul + URL-ul complet
  3. Trimite URL-ul sau printeaza cardul QR (buton „Printează cardul QR")
  4. Jucatorul deschide link-ul pe telefon — campania porneste instant

URL-ul pointeaza spre player-ul universal hostat pe GitHub Pages: https://romfast.github.io/escape-builder/play.html#<joc-comprimat>

Jocul calatoreste comprimat in URL (deflate-raw + base64url); playerul il decodeaza local, fara server, fara baza de date. 12+ puzzle-uri incap in ~636 bytes.

play.html este un fișier generat — conține toate 5 motoare de joc inline. Dupa modificari la motoare, regenereaza si recommita:

node --input-type=module < /tmp/gen-player.mjs   # sau din builder: playerHTML()
git add play.html && git commit -m "regen play.html" && git push github main

Folosire

Deschide escape-builder.html in browser (dublu-click, merge si de pe file://).

Pe un mediu fara desktop (container/server remote), serveste fisierele static si deschide din browserul tau:

cd /workspace/escape-builder
python3 -m http.server 8000
  • Stanga: editor — titlu, poveste, culoare, stil joc, puzzle-uri (raspuns liber / adevarat-fals / variante), indiciu si litera per puzzle.
  • Dreapta: preview live — jocul exact cum va arata, jucabil direct in pagina.
  • Exporta jocul HTML: descarca un joc standalone pe care il trimiti pe telefon/email; merge offline.
  • Salveaza / Incarca JSON: pastreaza proiectul ca fisier ca sa-l reiei mai tarziu.
  • Generează QR / link: comprima jocul intr-un URL + afiseaza cod QR printabil.

Proiectul curent se salveaza automat in localStorage la fiecare modificare.

Stiluri de joc

Stil Mecanica Exemplu
Clasic (quiz) Carduri secventiale cu progres si litere exemplu-clasic.html
Terminal retro Text adventure pe ecran CRT verde; scrii comenzi (INDICIU, LITERE) si raspunsuri exemplu-terminal.html
Arcade pixel Te misti cu sagetile/WASD prin camere; usile incuiate pun intrebari, cufarul final e scaparea exemplu-arcade.html
Story chat Un personaj blocat iti scrie mesaje (typing...); il ajuti raspunzand din composer exemplu-chat.html
Point-and-click Camera ilustrata SVG; dai click pe obiecte (ceas, tablou, seif...), le rezolvi si deschizi usa exemplu-point.html

Mecanici comune

  • Stele: 3 la prima incercare, 2 la a doua, 1 daca folosesti indiciul sau gresesti de mai multe ori.
  • Fiecare puzzle poate da o litera; literele formeaza cuvantul final, dezvaluit la castig (cu confetti, in functie de stil).
  • Sunete WebAudio la corect/gresit; raspunsurile se compara fara diacritice si fara majuscule.
  • Toate motoarele de joc impart aceeasi biblioteca (config, scor, verificare raspuns, modal, ecran final) generata din builder.

Testare

Suita de teste Playwright (smoke + campanie + share), fara server, direct pe file://:

npx playwright test tests/smoke.mjs              # toata suita (41/41)
npx playwright test tests/smoke.mjs --grep @regresie
npx playwright test tests/smoke.mjs --grep @campanie
npx playwright test tests/smoke.mjs --grep @share

Detalii harness in tests/AGENTS.md.

Description
No description provided
Readme 1.4 MiB
Languages
HTML 86.3%
JavaScript 13.7%