Progetto:BridgeShape Motore e frontend: differenze tra le versioni

[versione verificata][versione verificata]
BridgeShape: documentazione DSL v2
 
BridgeShape: allineamento docs DSL v2
Riga 181: Riga 181:
* '''<code><nowiki>S~...</nowiki></code>''' (<code><nowiki>suit_patterns</nowiki></code>): una sola alternativa (scelta a caso, uniformemente tra quelle compatibili con gli altri vincoli) descrive tutta la mano in quel seme: <code><nowiki>cards</nowiki></code> + tra <code><nowiki>low_min</nowiki></code> e <code><nowiki>low_max</nowiki></code> carte basse (<code><nowiki>low_max: null</nowiki></code> = illimitato, ma ≤ 13 − len(cards)).
* '''<code><nowiki>S~...</nowiki></code>''' (<code><nowiki>suit_patterns</nowiki></code>): una sola alternativa (scelta a caso, uniformemente tra quelle compatibili con gli altri vincoli) descrive tutta la mano in quel seme: <code><nowiki>cards</nowiki></code> + tra <code><nowiki>low_min</nowiki></code> e <code><nowiki>low_max</nowiki></code> carte basse (<code><nowiki>low_max: null</nowiki></code> = illimitato, ma ≤ 13 − len(cards)).
* '''<code><nowiki>x:</nowiki></code>''' (jolly di posizione): un seme scelto a caso tra quelli ''non'' vincolati esplicitamente in quella posizione; <code><nowiki>xhcp:</nowiki></code> si riferisce allo stesso seme. Il jolly '''non''' è condiviso con altre posizioni.
* '''<code><nowiki>x:</nowiki></code>''' (jolly di posizione): un seme scelto a caso tra quelli ''non'' vincolati esplicitamente in quella posizione; <code><nowiki>xhcp:</nowiki></code> si riferisce allo stesso seme. Il jolly '''non''' è condiviso con altre posizioni.
* '''Variabili <code><nowiki>$a..$d</nowiki></code>''': a inizio generazione ogni variabile usata riceve un seme dal proprio dominio (<code><nowiki>vars</nowiki></code>, default tutti e quattro). Variabili diverse hanno '''semi diversi'''. Una variabile può coincidere con un seme nominato esplicitamente (<code><nowiki>$a</nowiki></code> e <code><nowiki>H</nowiki></code>): se non è voluto, restringere il dominio (<code><nowiki>$a=SD</nowiki></code>). La scelta è uniforme tra le assegnazioni che rendono lo scenario soddisfacibile.
* '''Variabili <code><nowiki>$a..$d</nowiki></code>''': a inizio generazione ogni variabile usata riceve un seme dal proprio dominio (<code><nowiki>vars</nowiki></code>, default tutti e quattro). Variabili diverse hanno '''semi diversi'''; una variabile non dichiarata ha dominio completo. Una variabile può coincidere con un seme nominato esplicitamente (<code><nowiki>$a</nowiki></code> e <code><nowiki>H</nowiki></code>): se non è voluto, restringere il dominio (<code><nowiki>$a=SD</nowiki></code>). La scelta è uniforme tra le assegnazioni che rendono lo scenario soddisfacibile.
* '''<code><nowiki>fit</nowiki></code>''': somma delle lunghezze dei due compagni nel seme (o in qualunque seme del tipo <code><nowiki>major</nowiki></code>/ <code><nowiki>minor</nowiki></code>/<code><nowiki>any</nowiki></code>, a scelta del motore, uniformemente tra i semi che soddisfano il vincolo).
* '''<code><nowiki>fit</nowiki></code>''': somma delle lunghezze dei due compagni nel seme (o in qualunque seme del tipo <code><nowiki>major</nowiki></code>/ <code><nowiki>minor</nowiki></code>/<code><nowiki>any</nowiki></code>, a scelta del motore, uniformemente tra i semi che soddisfano il vincolo).
* '''<code><nowiki>any(A,B)</nowiki></code>''': la mano soddisfa almeno una alternativa. '''<code><nowiki>not(A,B)</nowiki></code>''': non ne soddisfa nessuna. Più gruppi → AND. Dentro <code><nowiki>A</nowiki></code>,<code><nowiki>B</nowiki></code> valgono gli stessi campi di una posizione (senza <code><nowiki>any/not/fit</nowiki></code>).
* '''<code><nowiki>any(A,B)</nowiki></code>''': la mano soddisfa almeno una alternativa. '''<code><nowiki>not(A,B)</nowiki></code>''': non ne soddisfa nessuna. Più gruppi → AND. Dentro <code><nowiki>A</nowiki></code>,<code><nowiki>B</nowiki></code> valgono gli stessi campi di una posizione (senza <code><nowiki>any/not/fit</nowiki></code>).