Carte che volano: dalla mano al tavolo e, finita la presa, sul mucchietto di chi ha preso (briscola, tressette, scopa; Andrea: «non si capisce quando vengono buttate le carte»). Il valzer della balera ai tavoli da carte (tools/valzer_carte.py: fisarmonica musette, basso, melodia di mandolino col tremolo), musica per primo piano; video «Come si gioca»: cache del Chromium della VM spenta, narratore e personaggi a turno, musica di sottofondo, pronunce del narratore

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01A1dxvtsZx8NE9fwjXUNDBr
This commit is contained in:
2026-10-26 18:17:23 +01:00
co-authored by Claude Opus 5.5
parent 7e1e6f6144
commit 538bf6cedb
19 changed files with 263 additions and 43 deletions
+7 -3
View File
@@ -13,7 +13,7 @@ export const cues = [
c("pesca", "Chi prende pesca per primo ed esce alla mano dopo. E non c'è l'obbligo di rispondere al seme"),
c("consiglio", "Un consiglio: su un liscio rispondi con un liscio, e i carichi dell'avversario prendili con una briscola piccola"),
c("tastiera", "Si gioca toccando la carta, oppure coi pulsanti sotto il tavolo, o con le frecce e Invio"),
c("conto", "Finito il mazzo si contano le prese, una carta alla volta. Vince chi arriva a sessantuno punti, e sessanta a sessanta è patta"),
c("conto", "Finito il mazzo si contano le prese, una carta alla volta. Vince chi arriva a sessantuno punti; sessanta a sessanta è pari, e non vince nessuno"),
c("fine", "Poi si torna all'oratorio, e si può chiedere la rivincita. Buona briscola!"),
];
@@ -21,6 +21,7 @@ export const setup = base;
export async function run(d) {
const p = d.page, r = regista(d, "tutorial-briscola");
// Il registro dell'audio parte con la ripresa: monta.py rimette le voci del gioco al loro istante.
await r.ascolta();
await r.vaiA("oratorio", [470, 300]);
await r.cue("dove");
@@ -30,12 +31,14 @@ export async function run(d) {
await r.scegli("Con le toscane.");
await r.cue("livello");
await r.scegli("Seria.");
// Una mano fissa, la stessa a ogni ripresa.
// Una mano fissa, la stessa a ogni ripresa: giocando attento, Andrea vince 68 a 52.
await p.evaluate(async () => {
const { newBriscola } = await import("/src/engine/briscola.js");
game.closeup = { id: "briscola", ...newBriscola(91421, { level: "seria", deck: "toscane" }) };
game.closeup = { id: "briscola", ...newBriscola(8, { level: "seria", deck: "toscane" }) };
});
await sleep(800);
// Il tavolo ha la sua musica: se non parte, il gioco servito nella VM è vecchio.
await p.waitForFunction(() => window.music?.want === "assets/audio/carte.mp3", null, { timeout: 10000 });
await r.cue("tavolo");
await r.muovi([150, 160], 1.0); await sleep(600); await r.muovi([320, 280], 1.0);
@@ -69,6 +72,7 @@ export async function run(d) {
await p.waitForFunction(() => game.closeup?.step === "result", null, { timeout: 60000 });
await sleep(2500);
await r.cue("fine");
await r.aspetta(); // la battuta del giocatore, uscendo, dopo quella del narratore
await d.click(p.locator("#closeup-close"), 0.6);
await r.fermi(800);
await r.fine();