Compare commits

..
24 Commits
Author SHA1 Message Date
manzolo d51f5e56ea Versione 0.1.9 2026-10-26 00:03:14 +01:00
manzoloandClaude Opus 5.5 7b7e0031d1 Biliardo: immagini e suoni insieme. Durante la steccata aspetta la fisica, non il disegno: la biglia parte quando la stecca la tocca, col suo suono, e si disegnano sempre le posizioni vere (segnalato da Codex: urti che sembravano senza contatto e suoni in anticipo di 180 ms)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018ks2K99uqCZjAxvy7Rdj1R
2026-10-25 23:55:31 +01:00
manzoloandClaude Opus 5.5 94e9da4009 Difficoltà alle bocce e al biliardo, scelta nel dialogo con l'avversario: «Alla bona», «Seria», «A fassi male». Tarata con partite simulate contro un giocatore attento: al biliardo vince 9 su 12, circa 4 su 10 e quasi mai; alle bocce 72%, 50% e 35% delle mani. Battute nuove per Mariano e l'Ingegnere, test
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018ks2K99uqCZjAxvy7Rdj1R
2026-10-25 23:46:46 +01:00
manzoloandClaude Opus 5.5 bd66ea45ad Biliardo più bello (Codex): tavolo in pixel art visto dall'alto con cornice a fasce e diamanti, sala in penombra e luce delle lampade sul panno, segnapunti a cifre rosse, steccata e birilli che cadono animati, biglie in pixel, l'Ing. Tozzi a bordo tavolo che dà il gesso, esulta o allarga le braccia. Più: scritte a 8 punti (a 6 la B sembrava una D) e la stecca che torna a seguire il mouse finché un clic non fissa la mira (Andrea: «non riesco più a girare la stecca»)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018ks2K99uqCZjAxvy7Rdj1R
2026-10-25 23:36:23 +01:00
manzoloandClaude Opus 5.5 9eabd5c6e1 Biliardo più preciso (revisione di Codex): urti calcolati nel punto esatto di contatto, anche nei colpi di taglio e veloci; la guida simula il tiro vero e mostra le due biglie dopo l'urto e i falli; la mira resta ferma andando sui comandi; frecce e Maiusc per la mira fine; comandi che non coprono il tavolo; test nel browser con mouse, touch e telefono. Più un tetto agli urti per passo, così due biglie a contatto non possono bloccare il gioco
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018ks2K99uqCZjAxvy7Rdj1R
2026-10-25 23:12:46 +01:00
manzoloandClaude Opus 5.5 ddc877a2d1 Sala dei biliardi: trio jazz da circolo sintetizzato da zero (tools/jazz_biliardo.py: contrabbasso, piano elettrico, spazzole, vibrafono, swing in si bemolle) e un sottofondo con gli altri tavoli e il bar
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018ks2K99uqCZjAxvy7Rdj1R
2026-10-25 22:59:43 +01:00
manzoloandClaude Opus 5.5 14a1e6e5b8 L'Ing. Tozzi nella sala dei biliardi (sprite di Codex dalla foto di Andrea): la sfida parte parlandogli, come con Mariano, con la rivincita dopo una vittoria; la sala in scala più alta, Andrea non sta più sotto il tavolo
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018ks2K99uqCZjAxvy7Rdj1R
2026-10-25 22:56:55 +01:00
manzolo 49bdfb313a Versione 0.1.8 2026-10-25 22:46:40 +01:00
manzoloandClaude Fable 5.1 416b9d46ef Sala dei biliardi: Andrea in proporzione col tavolo (la profondità era la metà: sembrava una formica)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018ks2K99uqCZjAxvy7Rdj1R
2026-10-25 22:41:34 +01:00
manzoloandClaude Fable 5.1 7476c84b76 Il portone del Circolo 4 Maggio: «Apri» fa entrare (prima rispondeva «Non si apre»)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018ks2K99uqCZjAxvy7Rdj1R
2026-10-25 22:36:20 +01:00
manzoloandClaude Fable 5.1 053728a086 Circolo 4 Maggio: dal portone in piazza si entra nella sala dei biliardi (sfondo in stile Lucas fatto da Andrea con Codex) e al primo tavolo si gioca a biliardo coi cinque birilli contro l'Ing. Tozzi (battute provvisorie, sprite da fare). Motore nuovo: fisica delle biglie e delle sponde, birilli che cadono, regole e falli del gioco italiano, avversario che prova i colpi a vuoto un po' per fotogramma; disegno dall'alto con stecca, linea di mira e biglia fantasma; stessi comandi delle bocce (pannello, tastiera, pressione); suoni; test; nelle idee la foto per i rigori
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018ks2K99uqCZjAxvy7Rdj1R
2026-10-25 22:34:19 +01:00
manzoloandClaude Opus 5.5 394e8bdde3 Musica su iPhone e iPad: il volume lì è di sola lettura, la dissolvenza non arrivava mai a zero e il brano vecchio restava sotto quello nuovo (organo e paese insieme nella Pieve). Il livello si tiene a parte e lo zero diventa muto; test che simula iOS
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018ks2K99uqCZjAxvy7Rdj1R
2026-10-25 21:49:16 +01:00
manzoloandClaude Opus 5.5 ca56a9df17 L'Arcu: «S'ha andà a fallo!?!?» – «Gnamo! Ma prima mi fo una segarettina...»; al Trebbio Andrea ci sale a piedi e ha trovato la sua strada (lui che non sa cosa fare da grande); voci e test
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018ks2K99uqCZjAxvy7Rdj1R
2026-10-25 21:44:20 +01:00
manzoloandClaude Opus 5.5 b0b2fc0ed3 Ponte sulla Sieve: il tabernacolo custodisce la copia dell'Annunciazione di Antonio Berti (originale del 1947), con voci nuove
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018ks2K99uqCZjAxvy7Rdj1R
2026-10-25 21:29:13 +01:00
manzoloandClaude Opus 5.5 f56c9b5358 Idee: altri minigiochi come le bocce (passamano, carrette, bandierine, caccia al tesoro, briscola, rigori)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018ks2K99uqCZjAxvy7Rdj1R
2026-10-25 20:12:42 +01:00
manzoloandClaude Opus 5.5 70f328c56d Telefono in verticale: la Pausa prende tutto lo schermo, la versione e la spiegazione non finiscono più sopra i verbi
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018ks2K99uqCZjAxvy7Rdj1R
2026-10-25 20:06:48 +01:00
manzolo 0a0bb7eea4 Versione 0.1.7 2026-10-25 19:59:06 +01:00
manzoloandClaude Opus 5.5 16759006b1 Fra Peppino da Gricignano sul sagrato della Pieve (battute provvisorie); al campo secondario, chi vuole giocare a padel trova una macchina del tempo senza plutonio (Alvarino?)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018ks2K99uqCZjAxvy7Rdj1R
2026-10-25 19:49:17 +01:00
manzolo 7c49c3e260 Versione 0.1.6 2026-10-25 19:30:39 +01:00
manzoloandClaude Opus 5.5 817cfbd7fd Gli sprite di Fra Peppino da Gricignano (Codex, dalla foto di Andrea): pronti, ancora da mettere sul sagrato
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018ks2K99uqCZjAxvy7Rdj1R
2026-10-25 19:26:23 +01:00
manzoloandClaude Opus 5.5 44485cff52 Bocce più vere (lavoro di Codex): mira libera sul campo o nel dettaglio del pallino, forza regolabile senza tempismo, urti fra masse diverse, tira chi non ha il punto, distanze in centimetri, suoni di rotolamento e urto, comandi anche a pulsanti e tastiera; test aggiornati alle nuove regole
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018ks2K99uqCZjAxvy7Rdj1R
2026-10-25 19:26:23 +01:00
manzoloandClaude Opus 5.5 a0201fea18 Organo della Pieve: anche la melodia sull'organo (registro principale), senza il flauto che sembrava un theremin
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018ks2K99uqCZjAxvy7Rdj1R
2026-10-25 19:02:24 +01:00
manzoloandClaude Opus 5.5 c4bac08c02 Le bocce al pallaio contro Mariano: si tiene premuto per la forza, tre bocce a testa, vince il più vicino al pallino; se vinci, «Hai vinto, ti ci porto!» a Brento Sanico (sfondo e Mariano di Codex dalle foto di Andrea)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018ks2K99uqCZjAxvy7Rdj1R
2026-10-25 18:59:09 +01:00
manzoloandClaude Opus 5.5 7f0584f0fc Dentro la Pieve un organo soave (tools/organo.py); il Federer del Tozzino si è fermato a Pratolino a mettere le catene
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018ks2K99uqCZjAxvy7Rdj1R
2026-10-25 18:37:04 +01:00
125 changed files with 3063 additions and 49 deletions
+6
View File
@@ -47,6 +47,11 @@ Si possono usare anche le frecce, oppure Invio per cercare il prossimo dettaglio
riprovare; dopo il ritrovamento, «Continua» conclude il capitolo.
Il volume dei suoni ambientali e del fruscio delle pagine si regola in **Pausa → Ambiente ed effetti**.
Al biliardo del Circolo 4 Maggio, clic o tocco fissa la mira; regola la forza e premi **Tira**.
Le frecce ← → affinano la direzione, con Maiusc per passi ancora più piccoli. La guida usa la stessa fisica
del tiro: mostra sponde, primo contatto e direzioni iniziali dopo l'urto (azzurro per l'avversaria, giallo
per la propria biglia). Tenendo premuto sul tavolo o Spazio si carica il colpo, con la mira bloccata.
## In Docker
```zsh
@@ -71,5 +76,6 @@ npm test # logica, storia coerente, soluzione percorsa dall'inizio alla
npm install && npx playwright install chromium-headless-shell
npm run browser # partita completa con clic veri in Chromium, salvataggio, telefono
npm run browser -- --media-only # libro, torcia e audio: controllo mirato desktop/telefono
npm run browser:biliardo # mira e tiro con mouse/touch, desktop e telefono; schermate in /tmp/regolo-biliardo
```
Binary file not shown.
Binary file not shown.
+70
View File
@@ -0,0 +1,70 @@
{
"image": "fra-peppino.png",
"height": 120,
"frames": {
"stand": {
"x": 0,
"y": 0,
"w": 50,
"h": 120,
"ax": 24.0,
"ay": 120
},
"blink": {
"x": 52,
"y": 0,
"w": 50,
"h": 120,
"ax": 23.9,
"ay": 120
},
"talk": {
"x": 104,
"y": 0,
"w": 50,
"h": 120,
"ax": 23.7,
"ay": 120
},
"explain": {
"x": 156,
"y": 0,
"w": 61,
"h": 121,
"ax": 27.6,
"ay": 121
},
"laugh": {
"x": 219,
"y": 0,
"w": 54,
"h": 119,
"ax": 24.3,
"ay": 119
},
"bless": {
"x": 275,
"y": 0,
"w": 58,
"h": 119,
"ax": 27.6,
"ay": 119
},
"shrug": {
"x": 335,
"y": 0,
"w": 91,
"h": 119,
"ax": 43.3,
"ay": 119
},
"point": {
"x": 428,
"y": 0,
"w": 76,
"h": 119,
"ax": 31.2,
"ay": 119
}
}
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 103 KiB

+70
View File
@@ -0,0 +1,70 @@
{
"image": "ing-tozzi.png",
"height": 120,
"frames": {
"stand": {
"x": 0,
"y": 0,
"w": 53,
"h": 120,
"ax": 27.9,
"ay": 120
},
"blink": {
"x": 55,
"y": 0,
"w": 54,
"h": 120,
"ax": 27.8,
"ay": 120
},
"talk": {
"x": 111,
"y": 0,
"w": 77,
"h": 119,
"ax": 29.9,
"ay": 119
},
"explain": {
"x": 190,
"y": 0,
"w": 58,
"h": 119,
"ax": 30.8,
"ay": 119
},
"laugh": {
"x": 250,
"y": 0,
"w": 53,
"h": 119,
"ax": 28.2,
"ay": 119
},
"chalk": {
"x": 305,
"y": 0,
"w": 52,
"h": 119,
"ax": 24.1,
"ay": 119
},
"shrug": {
"x": 359,
"y": 0,
"w": 87,
"h": 120,
"ax": 43.9,
"ay": 120
},
"cheer": {
"x": 448,
"y": 0,
"w": 56,
"h": 123,
"ax": 30.9,
"ay": 123
}
}
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 102 KiB

+22
View File
@@ -0,0 +1,22 @@
{
"image": "macchina-tempo.png",
"height": 158,
"frames": {
"stand": {
"x": 0,
"y": 0,
"w": 361,
"h": 158,
"ax": 180,
"ay": 152
},
"talk": {
"x": 0,
"y": 0,
"w": 361,
"h": 158,
"ax": 180,
"ay": 152
}
}
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 91 KiB

+70
View File
@@ -0,0 +1,70 @@
{
"image": "mariano.png",
"height": 120,
"frames": {
"stand": {
"x": 0,
"y": 0,
"w": 40,
"h": 120,
"ax": 17.8,
"ay": 120
},
"blink": {
"x": 42,
"y": 0,
"w": 40,
"h": 120,
"ax": 17.9,
"ay": 120
},
"talk": {
"x": 84,
"y": 0,
"w": 40,
"h": 120,
"ax": 17.9,
"ay": 120
},
"explain": {
"x": 126,
"y": 0,
"w": 60,
"h": 120,
"ax": 20.9,
"ay": 120
},
"throw": {
"x": 188,
"y": 0,
"w": 80,
"h": 102,
"ax": 51.5,
"ay": 102
},
"laugh": {
"x": 270,
"y": 0,
"w": 41,
"h": 119,
"ax": 16.9,
"ay": 119
},
"measure": {
"x": 313,
"y": 0,
"w": 72,
"h": 91,
"ax": 38.0,
"ay": 91
},
"cheer": {
"x": 387,
"y": 0,
"w": 63,
"h": 118,
"ax": 27.5,
"ay": 118
}
}
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 96 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 324 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 143 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+305 -9
View File
@@ -75,6 +75,14 @@
"file": "andrea-a9df2e6bbb.mp3",
"sec": 4.98
},
"andrea|Il Circolo 4 Maggio. Dentro, dietro il bar, la sala dei biliardi: tre tavoli e il silenzio delle grandi occasioni.": {
"file": "andrea-f0aef83c80.mp3",
"sec": 9.43
},
"andrea|Da fuori non si parla con nessuno: al circolo si entra.": {
"file": "andrea-0e0e42a1cd.mp3",
"sec": 3.69
},
"andrea|Il programma del Palio della Fortezza, con la foto del palio: la strada bianca che sale alla Fortezza, i ragazzi in fila, e uno con la maglia rossa che alza le braccia.": {
"file": "andrea-6cc844498a.mp3",
"sec": 10.59
@@ -279,6 +287,26 @@
"file": "andrea-68a845881b.mp3",
"sec": 1.94
},
"andrea|Fra Peppino da Gricignano, col saio e i sandali. Sul sagrato sembra nato lì.": {
"file": "andrea-97d75e2a9d.mp3",
"sec": 5.38
},
"andrea|Buongiorno, Fra Peppino!": {
"file": "andrea-94988dc8c6.mp3",
"sec": 1.74
},
"fra_peppino|Pace e bene, figliolo. Cerchi qualcosa?": {
"file": "fra_peppino-651c4d95ab.mp3",
"sec": 3.72
},
"andrea|Il palio. È sparito.": {
"file": "andrea-c9c068f507.mp3",
"sec": 2.39
},
"fra_peppino|Le cose sparite, prima o poi, tornano. Come le pecorelle.": {
"file": "fra_peppino-8b3d0a5b8f.mp3",
"sec": 4.47
},
"andrea|La Pieve di San Pietro. Il mio rione: noi bianchi.": {
"file": "andrea-43fd5c2b27.mp3",
"sec": 4.46
@@ -615,9 +643,65 @@
"file": "andrea-d193b44288.mp3",
"sec": 3.65
},
"andrea|Il tabernacolo prima del ponte. Chi passa per andare via dal paese, un saluto glielo fa sempre.": {
"file": "andrea-78a5ef65f0.mp3",
"sec": 7.84
"andrea|La sala dei biliardi. Qui dentro si parla piano, e si gioca forte.": {
"file": "andrea-0268742faf.mp3",
"sec": 5.45
},
"andrea|Il primo tavolo: il panno verde, il castello di birilli in mezzo, le biglie già pronte.": {
"file": "andrea-015dc16c6d.mp3",
"sec": 5.51
},
"andrea|L'Ing. Tozzi gli gira intorno con la stecca in mano, come se aspettasse qualcuno.": {
"file": "andrea-2d04be65fb.mp3",
"sec": 5.97
},
"andrea|Il tavolo è dell'Ingegnere: prima gli chiedo una partita.": {
"file": "andrea-c43b158842.mp3",
"sec": 3.27
},
"ing_tozzi|Si parla col panno, qui. Prendi la stecca.": {
"file": "ing_tozzi-4814e97759.mp3",
"sec": 3.36
},
"andrea|Una biglia in tasca? Mi sbattono fuori dal circolo.": {
"file": "andrea-98b3e4a969.mp3",
"sec": 3.49
},
"andrea|L'Ing. Tozzi, il campione del circolo. Occhiali scuri anche al chiuso: dice che così non vede le biglie degli altri.": {
"file": "andrea-127a90af53.mp3",
"sec": 9.37
},
"andrea|Le stecche del circolo, in fila. Ognuna ha il suo proprietario, e guai a sbagliare.": {
"file": "andrea-1eae1a8577.mp3",
"sec": 6.1
},
"andrea|La stecca me la dà l'Ingegnere, quando si gioca.": {
"file": "andrea-e393f0bc2a.mp3",
"sec": 2.83
},
"andrea|Un campione di biliardo in posa, con la stecca. Avrà il suo nome, ma da qui non si legge.": {
"file": "andrea-4a03e51d2c.mp3",
"sec": 7.65
},
"andrea|L'armadietto a vetri, con le stecche buone. Chiuso a chiave, naturalmente.": {
"file": "andrea-b1ba7d3072.mp3",
"sec": 5.06
},
"andrea|Chiuso. Le stecche buone sono per chi le sa usare.": {
"file": "andrea-bd95e65b0a.mp3",
"sec": 4.77
},
"andrea|Il tabernacolo del ponte, con l'Annunciazione di Antonio Berti, scultore sanpierino.": {
"file": "andrea-9c0935dc77.mp3",
"sec": 5.48
},
"andrea|Questa è una copia: l'originale lo fece nel 1947. Lo stesso Berti del parco dell'area feste.": {
"file": "andrea-902c4db19c.mp3",
"sec": 8.21
},
"andrea|Chi passa per andare via dal paese, un saluto glielo fa sempre.": {
"file": "andrea-6eeaab479b.mp3",
"sec": 4.03
},
"andrea|Sotto il ponte la Carza si butta nella Sieve, e da qui vanno avanti insieme.": {
"file": "andrea-f322731846.mp3",
@@ -655,6 +739,42 @@
"file": "andrea-e47b3cebb5.mp3",
"sec": 4.87
},
"andrea|Voglio giocare a padel!": {
"file": "andrea-808f67b99f.mp3",
"sec": 1.4
},
"andrea|Toh, guarda: c'è una macchina del tempo.": {
"file": "andrea-1f686a5d7c.mp3",
"sec": 3.2
},
"andrea|Per arrivare al padel mi manca solo un po' di plutonio. Potrei sentire da Alvarino se ce l'ha.": {
"file": "andrea-299c0c38d6.mp3",
"sec": 6.03
},
"andrea|Il padel aspetta. Prima il plutonio: devo sentire Alvarino.": {
"file": "andrea-9f70e8b68e.mp3",
"sec": 5.03
},
"andrea|Acciaio, portiere ad ali di gabbiano, cavi e bobine dappertutto. E un contenitore vuoto, sul retro.": {
"file": "andrea-122877af14.mp3",
"sec": 7.99
},
"andrea|Vuoto di plutonio, si capisce.": {
"file": "andrea-1cb9f950ca.mp3",
"sec": 2.41
},
"andrea|Le portiere sono già su. È il plutonio che manca.": {
"file": "andrea-c1db806968.mp3",
"sec": 4.01
},
"andrea|Senza plutonio non parte. Alvarino, dove sei?": {
"file": "andrea-8f9dcb0bb1.mp3",
"sec": 3.71
},
"andrea|Una macchina in tasca? Neanche nel futuro.": {
"file": "andrea-cac0c82f01.mp3",
"sec": 3.06
},
"barondeduke|Me la giochi? Ho un sette e un due, ma un sacco di fiducia.": {
"file": "barondeduke-52184c7c05.mp3",
"sec": 5.58
@@ -883,9 +1003,9 @@
"file": "andrea-e94382adb6.mp3",
"sec": 5.76
},
"andrea|Senza bocce, e senza un vecchietto che misura col metro, non è una partita.": {
"file": "andrea-d6576896b2.mp3",
"sec": 5.36
"andrea|Una partita? Chiedo a Mariano, il campione.": {
"file": "andrea-609540460a.mp3",
"sec": 3.81
},
"andrea|Di là, dove guarda l'omino di ferro, c'è il campo da tennis della chiesa.": {
"file": "andrea-455ac4031a.mp3",
@@ -931,6 +1051,10 @@
"file": "andrea-2de291f241.mp3",
"sec": 4.09
},
"andrea|Mariano, il campione del pallaio. Gli occhiali in testa, il sorriso di chi ha già vinto.": {
"file": "andrea-3e2f9b4424.mp3",
"sec": 6.42
},
"andrea|Giù a destra, oltre le vigne, c'è la casa del maestro Bacci. Mezzo paese ha imparato a leggere e scrivere da lui.": {
"file": "andrea-060513a152.mp3",
"sec": 8.65
@@ -1083,9 +1207,9 @@
"file": "andrea-70f150bdec.mp3",
"sec": 2.67
},
"tozzino|E chi sennò? Ha chiamato ora: è imbottigliato in Bolognese.": {
"file": "tozzino-d51159c364.mp3",
"sec": 4.08
"tozzino|E chi sennò? Ha chiamato ora: s'è fermato a Pratolino a mettere le catene. A breve arriva.": {
"file": "tozzino-9fef6eb47d.mp3",
"sec": 6.42
},
"tozzino|Se non arriva, la vinco a tavolino.": {
"file": "tozzino-c06cc01612.mp3",
@@ -1615,6 +1739,10 @@
"file": "andrea-06f5050907.mp3",
"sec": 1.24
},
"andrea|S'ha andà a fallo!?!?": {
"file": "andrea-b25aeefc97.mp3",
"sec": 1.16
},
"andrea|Ci si becca da i' Trappola, ai' Barrettino!": {
"file": "andrea-fca6f59a70.mp3",
"sec": 3.41
@@ -1659,6 +1787,102 @@
"file": "arcu-5148dffe36.mp3",
"sec": 1.7
},
"arcu|Gnamo! Ma prima mi fo una segarettina di quelle mi fo io!": {
"file": "arcu-406cd02197.mp3",
"sec": 4.46
},
"andrea|Mariano! Facciamo una partita a bocce?": {
"file": "andrea-83b1337b4d.mp3",
"sec": 3.31
},
"andrea|La rivincita?": {
"file": "andrea-98e4366a56.mp3",
"sec": 0.83
},
"andrea|Allora, Brento Sanico?": {
"file": "andrea-2add39ff10.mp3",
"sec": 1.29
},
"andrea|Ciao Mariano.": {
"file": "andrea-76a4a385c7.mp3",
"sec": 0.89
},
"mariano|Con me? Al pallaio sono il campione.": {
"file": "mariano-e8bb19cfdf.mp3",
"sec": 3.31
},
"mariano|Facciamo così: se mi batti, ti porto a Brento Sanico.": {
"file": "mariano-0eeb942ca2.mp3",
"sec": 3.52
},
"mariano|Come la vuoi?": {
"file": "mariano-0288ec460b.mp3",
"sec": 0.7
},
"mariano|Il campione non scappa. Come la vuoi?": {
"file": "mariano-1d8388d631.mp3",
"sec": 3.55
},
"mariano|Promesso: ti ci porto. Ma prima ritrova il palio, che senza festa non si parte.": {
"file": "mariano-1c9cd0c325.mp3",
"sec": 5.96
},
"andrea|Alla bona.": {
"file": "andrea-67afa54e05.mp3",
"sec": 0.69
},
"andrea|Seria.": {
"file": "andrea-f6ef96032e.mp3",
"sec": 0.58
},
"andrea|A fassi male.": {
"file": "andrea-f52137b691.mp3",
"sec": 0.78
},
"mariano|Alla bona: tiro con gli occhi chiusi.": {
"file": "mariano-b1b1ca273b.mp3",
"sec": 2.2
},
"mariano|Seria. Così mi piace.": {
"file": "mariano-accff65835.mp3",
"sec": 2.27
},
"mariano|A fassi male? Poi non piangere, eh.": {
"file": "mariano-d65fb6e871.mp3",
"sec": 3.42
},
"andrea|Ingegnere, una partita ai birilli?": {
"file": "andrea-dbcf4d1083.mp3",
"sec": 2.49
},
"andrea|Arrivederci, Ingegnere.": {
"file": "andrea-8f63435d69.mp3",
"sec": 1.38
},
"ing_tozzi|Una partita ai birilli? Si va a venti. Come la vuoi?": {
"file": "ing_tozzi-82e7cc88aa.mp3",
"sec": 4.58
},
"ing_tozzi|Ci mancherebbe. Stavolta guardo bene. Come la vuoi?": {
"file": "ing_tozzi-344ac1021f.mp3",
"sec": 4.67
},
"ing_tozzi|Alla bona: tiro senza occhiali.": {
"file": "ing_tozzi-17e489814e.mp3",
"sec": 2.19
},
"andrea|Gnamo.": {
"file": "andrea-a496b0aca9.mp3",
"sec": 0.58
},
"ing_tozzi|Seria. Dammi il gesso.": {
"file": "ing_tozzi-4b3adfa04a.mp3",
"sec": 2.28
},
"ing_tozzi|A fassi male? Allora mi tolgo la giacca. Ah no, non ce l'ho.": {
"file": "ing_tozzi-c365e9f760.mp3",
"sec": 6.05
},
"andrea|Sono bloccato. Mi dai un consiglio?": {
"file": "andrea-42b02eb9ea.mp3",
"sec": 3.9
@@ -1667,6 +1891,14 @@
"file": "andrea-01d1ccb933.mp3",
"sec": 2.09
},
"andrea|Lo sai che quassù ci vengo sempre a piedi?": {
"file": "andrea-fc4233b1e9.mp3",
"sec": 2.82
},
"andrea|E te, da grande, cosa volevi fare?": {
"file": "andrea-3aacdf79ee.mp3",
"sec": 2.8
},
"andrea|Niente, volevo solo un po' di pace.": {
"file": "andrea-131481b503.mp3",
"sec": 2.79
@@ -1731,10 +1963,74 @@
"file": "castello-a1dfd76497.mp3",
"sec": 6.51
},
"castello|Lo so. Ti sento arrivare dal fiatone, un chilometro prima.": {
"file": "castello-05405f3232.mp3",
"sec": 5.63
},
"andrea|Da casa sono quattro chilometri. E due sono di salita, di quella bella.": {
"file": "andrea-57327d9598.mp3",
"sec": 6.46
},
"castello|Eppure torni sempre. Qualcosa, quassù, l'hai trovato.": {
"file": "castello-1545f0b17d.mp3",
"sec": 6.56
},
"andrea|Ho trovato la mia strada!": {
"file": "andrea-e9ef2a6d39.mp3",
"sec": 1.59
},
"andrea|...Io, che ancora non so cosa fare da grande.": {
"file": "andrea-60611ea4b9.mp3",
"sec": 3.54
},
"castello|Il castello.": {
"file": "castello-e34c381c3c.mp3",
"sec": 0.98
},
"castello|Mi è venuto bene. Non avere fretta: a me ci son voluti seicento anni.": {
"file": "castello-dcd5a7ae63.mp3",
"sec": 6.24
},
"castello|Quella qui non manca mai. Torna quando vuoi.": {
"file": "castello-dc8a873d86.mp3",
"sec": 4.36
},
"mariano|Aspetta, ci vuole il metro...": {
"file": "mariano-e8b4ebf3d9.mp3",
"sec": 1.62
},
"mariano|Hai vinto, ti ci porto!": {
"file": "mariano-f361945994.mp3",
"sec": 1.66
},
"mariano|Bocciato! Al pallaio comando io.": {
"file": "mariano-4b1eea73b2.mp3",
"sec": 3.38
},
"mariano|Quando vuoi la rivincita, sono qui.": {
"file": "mariano-e582e766cd.mp3",
"sec": 2.29
},
"mariano|Già stanco? Il pallaio ti aspetta.": {
"file": "mariano-39e27158b7.mp3",
"sec": 2.83
},
"ing_tozzi|Venti. Hai vinto te, stasera il caffè lo pago io.": {
"file": "ing_tozzi-51f855478a.mp3",
"sec": 4.42
},
"ing_tozzi|Venti! Al biliardo ci vuole la mano ferma, mica la corsa.": {
"file": "ing_tozzi-d557d58aec.mp3",
"sec": 4.66
},
"ing_tozzi|Quando vuoi, il tavolo è qui.": {
"file": "ing_tozzi-3d686c8cc5.mp3",
"sec": 2.05
},
"ing_tozzi|Lasci a metà? Ti segno la sconfitta a tavolino, eh.": {
"file": "ing_tozzi-282062c119.mp3",
"sec": 3.64
},
"andrea|Laggiù, appoggiato al muro, c'è un angolo di tela dipinta: una strada bianca, e un omino con la maglia rossa e le braccia alzate.": {
"file": "andrea-6484641c58.mp3",
"sec": 8.67
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+34
View File
@@ -0,0 +1,34 @@
# Primo piano del biliardo
Il tavolo in `assets/closeups/biliardo-tavolo.png` è generato con lo strumento immagini integrato
di Codex, senza API. Prompt completo in `prompts/closeups/biliardo-tavolo.integrated.txt`
(cartella esclusa da git). Specifica: vista ortogonale dall'alto, pixel art da avventura anni '90,
mogano scuro a fasce chiare e scure, diamanti d'ottone, panno verde, sala in penombra;
senza buche, biglie, birilli, persone, stecche o testi. Riferimento di stile: `circolo-4-maggio.png`.
L'Ingegnere usa il foglio esistente `ing-tozzi.json`, coerente con la fotografia di riferimento.
Il master misura 1672×941. `tablePatches()` in `biliardo-render.js` mappa il panno sorgente
(190, 214)–(1484, 722) su `(VIEW.x, VIEW.y, LEN * VIEW.k, WID * VIEW.k)`; i ritagli
esterni mantengono una cornice larga 16 pixel. La geometria della simulazione resta invariata.
Il caricamento passa da `story.closeups.biliardo.picture`, con la stessa cache delle bocce.
La luce calda è disegnata sul panno con una piccola tela memorizzata, ingrandita senza smoothing.
Biglie e birilli usano blocchi di pixel; le ombre delle biglie si allontanano dalla lampada centrale.
I segnapunti sono cifre rosse a sette segmenti. Le quattro pose di Tozzi rimangono nel margine sinistro.
`biliardo.js` aggiunge soltanto stato visivo: orologio, posizione iniziale della steccata,
breve cronologia delle posizioni e istante della caduta dei birilli. La presentazione del moto
è ritardata di 180 ms, per mostrare arretramento e scatto della stecca; la fisica parte subito.
La caduta dei birilli dura 240 ms sul medesimo orologio visivo. Previsione e CPU non scrivono
questa cronologia. Un confronto con la versione precedente ha verificato 6626 aggiornamenti
identici, escludendo i soli campi visivi.
Controlli: `tests/biliardo-render.test.mjs` verifica allineamento, presentazione, cadute,
pose e immutabilità del disegno. `npm run browser:biliardo` conserva i controlli dei comandi
su desktop, touch e telefono verticale e aggiunge controlli dei pixel e catture delle animazioni
in `/tmp/regolo-biliardo`.
Verifica di questa modifica: test JavaScript e Python superati; anteprima locale del renderer
ispezionata. Restano da completare `make -s verify` e `npm run browser:biliardo` in un ambiente
che permetta server locale e Chromium: nella sandbox della sessione entrambi sono bloccati
da `Operation not permitted`. Le vecchie schermate browser non validano questa modifica.
+15
View File
@@ -105,3 +105,18 @@ si segna qui con la data e il punto di `src/story/story.js` dove sta; le persone
- *Regia alla fessura*: col meccanismo del primo piano (`closeup`) il buio, la torcia, un istante di silenzio,
poi gli occhi. Due immagini di Codex.
- *Segreti facoltativi del paese* con pagine illustrate nel taccuino: funzione nuova, dopo la storia principale.
- **Altri minigiochi come le bocce** (25 ottobre 2026): ognuno è un primo piano (`closeup` con il suo `type`, come
`bocce`), con comandi per dito, mouse e tastiera, i suoi test e una battuta per chi vince e per chi perde.
Il posto naturale sono le gare del Palio del secondo capitolo:
- *Passamano dei mattoni* (da fare per primo): un gioco di ritmo, i mattoni arrivano lungo la fila e si passano al
momento giusto; sbagliando il tempo ne cade uno. Facile col dito, e chiude il cerchio col finale (i mattoni
portati in Fortezza).
- *Le carrette*: corsa in discesa vista di lato, a destra e sinistra fra buche e balle di paglia. La più
spettacolare, la più lunga da disegnare.
- *Bandierine (lavanderine)*: correre a prendere la bandiera prima dell'avversario, di riflessi.
- *Caccia al tesoro*: un giro di indizi fra le scene che ci sono già, senza un minigioco nuovo.
Fuori dal Palio:
- *Briscola al circolino* con l'Arcu e il Barone (la gag del «Male male si divide»): una mano corta.
- *Rigori all'A. Bettini*: mira e forza come alle bocce, contro un portiere. Andrea ha ritrovato la foto di squadra
sul campo in terra (porta, rete, la torre della Pieve dietro, anni '90): lo sfondo del minigioco lo fa Codex da quella,
senza le persone (per i volti serve il consenso). Da salvare in `assets/raw/foto/campo-bettini-squadra.jpg`.
+32
View File
@@ -103,6 +103,38 @@
<div id="inventory" aria-label="Inventario"></div>
</div>
<ol id="choices" hidden></ol>
<section id="bocce-controls" hidden aria-label="Comandi delle bocce">
<p id="bocce-status" role="status"></p>
<div class="bocce-adjust">
<button id="bocce-left" type="button" aria-label="Sposta la mira a sinistra">← Mira</button>
<label for="bocce-power">Forza <output id="bocce-power-value">50%</output>
<input id="bocce-power" type="range" min="0" max="100" step="1" value="50" aria-label="Forza del lancio">
</label>
<button id="bocce-right" type="button" aria-label="Sposta la mira a destra">Mira →</button>
<button id="bocce-throw" type="button">Lancia</button>
</div>
<details id="bocce-help"><summary>Come si gioca</summary>
<p>Tocca il campo o il dettaglio del pallino per mirare. Regola la forza, poi premi Lancia.
Il cerchio azzurro indica dove si fermerebbe la boccia senza urti.</p>
<p>Puoi anche tenere premuto sul campo o Spazio e rilasciare per tirare.
Frecce ← →: mira; ↑ ↓: forza. Esc esce dalla mano.</p>
<p>Tre bocce a testa. Tira chi non ha il punto; segna ogni boccia più vicina della migliore avversaria.
Vince chi fa più punti nella mano.</p>
</details>
<details id="biliardo-help" hidden><summary>Come si gioca</summary>
<p>Clic o tocco sul tavolo fissa la mira: puoi spostarti sui comandi senza cambiarla.
La linea tratteggiata segue la tua biglia fino al primo urto, comprese le sponde; il cerchio vuoto indica
il punto di contatto. Dopo l’urto, la freccia azzurra mostra la direzione dell’avversaria, quella gialla
la tua. Le frecce mostrano solo il primo tratto, fino al prossimo ostacolo o al massimo 50 cm.
Senza urti, il cerchietto indica dove ti fermi. La guida arancione segnala un primo contatto falloso.</p>
<p>Regola la forza, poi premi Tira. Oppure tieni premuto sul tavolo o Spazio e rilascia per tirare:
durante la carica la mira resta ferma. Frecce ← →: mira fine; Maiusc + ← →: regolazione ancora più precisa;
↑ ↓: forza. Esc esce dalla partita. I colpi sono centrali, senza effetti di rotazione.</p>
<p>Cinque birilli: devi colpire la biglia avversaria e mandarla sui birilli o sul pallino. Birillo bianco 2 punti,
rosso 4, rosso da solo 10; pallino toccato dalla biglia avversaria 3. Se manchi la biglia avversaria, tocchi prima
il pallino o abbatti birilli con la tua, i punti (almeno 2) vanno all'avversario. Un colpo a testa; vince chi arriva prima a 20.</p>
</details>
</section>
</div>
<p id="rotate">Gira il telefono: in orizzontale si gioca meglio.</p>
</div>
+2 -1
View File
@@ -1,11 +1,12 @@
{
"name": "leggenda-del-regolo",
"version": "0.1.5",
"version": "0.1.9",
"private": true,
"type": "module",
"scripts": {
"test": "node --test tests/*.test.mjs",
"browser": "node tests/browser.mjs",
"browser:biliardo": "node tests/biliardo.browser.mjs",
"browser:effects": "node tests/ambient.browser.mjs",
"serve": "python3 -m http.server 8000"
},

Some files were not shown because too many files have changed in this diff Show More