Progetto:BridgeShape Smazzate di gioco

Questa è una versione controllata, approvata il 27 ott 2026. Potrebbero essere state apportate nuove modifiche.

Documentazione BridgeShape: API e sintassi DSL · Motore e frontend · Ricette DSL

BridgeShape — Regole per generare smazzate di gioco (eliminazione e messa in mano)

Come descrivere con shape_constraints le smazzate didattiche sul gioco della carta (eliminazione, messa in mano, expasse, sblocco, conteggio, carta falsa), per esempio quelle della lezione "Gioco di Eliminazione" di ProgettoBridge. Gli scenari qui sotto sono archetipi scritti da BridgePedia (non copiano le mani né il testo della lezione). Ogni riga è verificata dal parser (RecipesTest).

1. Cosa può fare la DSL e cosa no

La DSL descrive la struttura della smazzata: forma, punti, fit, colori lunghi, contesto (contratto, attaccante, vulnerabilità). Non può dire "la mano si realizza solo con la messa in mano": quella è una proprietà del gioco, non della distribuzione. Quindi la generazione ha due fasi:

  1. Generazione strutturale con gli scenari di questa pagina (il motore Play).
  2. Filtro tecnico (post-filtro), da realizzare in Play con un risolutore a carte scoperte (double dummy): si tiene la smazzata solo se supera i controlli del §3.

Senza il passo 2 la maggior parte delle mani generate non conterrebbe il tema voluto.

2. Archetipi (scenari)

Messa in mano dopo eliminazione, fit nobile 5-4, contratto di manche: <syntaxhighlight lang="text"> Eliminazione base 4S: declarer:opener contract:4S opener S:5 hcp:16-19 ; responder S:4 hcp:8-11 Eliminazione base 4H: declarer:opener contract:4H opener H:5 hcp:16-19 ; responder H:4 hcp:8-11 </syntaxhighlight>

Colore laterale corto da eliminare (singolo o doubleton) con taglio e scarto possibile: <syntaxhighlight lang="text"> Eliminazione colore corto: declarer:opener contract:4S opener S:5-6 hcp:15-19 $a:2-3 ; responder S:4 $a:2 hcp:8-12 </syntaxhighlight>

Slam con undici prese vincenti e un solo colore da giocare bene: <syntaxhighlight lang="text"> Slam con colore chiave: declarer:opener contract:6S pairhcp:30-34 opener S:5+ hcp:17-21 ; responder S:3+ hcp:10-14 </syntaxhighlight>

Expasse e impasse nello stesso colore (stessa posizione di una carta): <syntaxhighlight lang="text"> Impasse o expasse: declarer:opener contract:6D pairhcp:30-34 opener D:5+ hcp:14-18 ; responder D:4+ hcp:14+ </syntaxhighlight>

Gioco a senza atout con sblocco al primo giro: <syntaxhighlight lang="text"> SA con sblocco: declarer:opener contract:3NT opener shape:balanced hcp:15-17 ; responder shape:balanced hcp:9-12 ; opp1 S:5+ SA con onore secondo in mano: declarer:opener contract:3NT opener H:2-3 hcp:15-17 ; responder H:4 hcp:10-12 ; opp1 S:5+ </syntaxhighlight>

Conteggio della mano di un avversario che ha aperto di barrage o sottoapertura: <syntaxhighlight lang="text"> Conteggio dopo barrage: dealer:opp1 declarer:opener contract:4H opp1 S:7 hcp:5-9 ; opener H:5+ hcp:16-20 ; responder H:3+ Conteggio dopo sottoapertura: dealer:opp1 declarer:opener contract:6C opp1 D:6 hcp:5-9 ; opener C:6+ hcp:19+ ; responder C:2-4 hcp:12+ </syntaxhighlight>

Atout 2-2 favorevoli e doppio impasse: <syntaxhighlight lang="text"> Quattro picche 2-2: declarer:opener contract:4S opener S:5 hcp:12-15 ; responder S:4 hcp:8-11 ; opp1 S:2 ; opp2 S:2 </syntaxhighlight>

Controgioco e attacco per la difesa (si impersona la difesa): <syntaxhighlight lang="text"> Difesa contro 4 cuori: declarer:opener contract:4H lead:SQ opener H:5+ hcp:17+ ; opp1 S=QJ Difesa contro 6 fiori: declarer:opener contract:6C opener C:6+ hcp:19+ ; opp1 H:4-5 hcp:6-10 </syntaxhighlight>

Contro informativo e risposta del compagno: <syntaxhighlight lang="text"> Contro informativo e risposta: dealer:opener opener S:6 hcp:12-15 ; opp1 hcp:12+ H:4+ ; responder hcp:0-5 C:5+ </syntaxhighlight>

Mano troppo forte per l'appoggio barrage (fit quinto con 2NT Truscott): <syntaxhighlight lang="text"> Fit quinto con mano forte: declarer:opener contract:4S pairhcp:25-30 opener S:5 hcp:15-18 ; responder S:5+ hcp:9-12 </syntaxhighlight>

3. Filtri tecnici (post-filtro con risolutore a carte scoperte)

Applicare dopo la generazione strutturale. Soglie indicative da tarare con esempi reali:

  • Contratto realizzabile ma non banale: il risolutore trova la linea vincente, e la prima linea "ovvia" (per esempio impasse a prima vista) fallisce nella maggior parte delle posizioni alternative.
  • Esistenza di una linea ≥ 90 % più alta della naturale: confrontare le probabilità delle linee; tenere la smazzata se la linea di eliminazione supera la naturale di almeno il 15 %.
  • Eliminazione necessaria: dopo aver tolto i colori laterali la difesa deve essere messa in presa e restare senza uscite neutre (verifica: il contratto cade se si salta l'eliminazione).
  • Una sola linea vincente (o pochissime): scartare le mani risolvibili in molti modi.
  • Coerenza con la licita: licita ricostruita con le convenzioni del sistema scelto, mai incompatibile con le mani (usare il giudice satisfies() sulla smazzata finale).
  • Carta falsa / radiografia: nelle mani sul conteggio richiedere che le carte da dedurre siano una distribuzione plausibile (almeno due ipotesi alternative con probabilità diverse).

4. Come usarli nelle pagine

  • Un archetipo per pagina di tecnica, come shape_constraints nel template {{Convenzione}} o nella pagina della tecnica, con shape_roles adatti (Dichiarante, Morto, Attaccante, Compagno).
  • Le soglie PO nell'archetipo sono punti di partenza: nella pagina si citano quelle della fonte e le mani reali (con <deal>) dall'antologia di smazzate, con la fonte citata.
  • Per smazzate per la difesa usare declarer: e lead: e descrivere la mano dell'attaccante.

Fonti

  • ProgettoBridge, Lezione 18 — Gioco di Eliminazione, smazzate esplicative (tecniche e temi trattati; gli archetipi qui sopra sono ricostruzioni originali di BridgePedia, non riproduzioni).