nanDECK - Tutorial C
Questo tutorial è stato scritto per la versione 1.8a di nanDECK (o successive).
Per prima cosa, definiamo un'etichetta:
[LAB1]="Alpha"
Questa etichetta può essere utilizzata in comandi come:
FONT="Arial", 72, "", "#000000"
TEXT="1", [LAB1], 0, 0, 6, 9, "center", "center",
90
Per ottenere questo risultato:
Facile, no? Ma possiamo aggiungere dei parametri alla definizione dell'etichetta, uno di questi è il numero di ripetizioni:
[LAB1]3="Alpha"
FONT="Arial", 32, "", "#000000"
TEXT="1", [LAB1], 0, 0, 6, 9, "center", "center",
90
In questo modo l'etichetta viene valutata come "AlphaAlphaAlpha". Il passo successivo è quello di introdurre un'altro parametro, un prefisso per le permutazioni e le combinazioni, ma prima dobbiamo definire più di un oggetto ("Alpha") utilizzando il carattere "|" :
[LAB1]="A|B|C"
Ora, se vogliamo ottenere una combinazione di due oggetti da un insieme di tre, possiamo scrivere:
C[LAB1]2="A|B|C"
Questa etichetta verrà espansa in "AB|AC|BC" nell'esecuzione del codice (ogni combinazione di due elementi da un insieme di tre). Se noi invece vogliamo le permutazioni scriveremo:
P[LAB1]2="A|B|C"
E l'etichetta che otterremo come risultato sarà "AB|AC|BA|BC|CA|CB". Ricordatevi che in una permutazione l'ordine degli elementi è importante, AB è diverso da BA.
Come possiamo utilizzare questa etichetta? Con questo codice otterremo tutte le permutazioni di tre elementi, una per ogni carta:
P[LAB1]3="A|B|C"
FONT="Arial", 72, "", "#000000"
TEXT="1-6", [LAB1], 0, 0, 6, 9, "center", "center",
90
Premento il tasto "Validate deck", il programma ci darà questo codice intermedio:
P[LAB1]3="A|B|C"
FONT="Arial", 72, "", "#000000"
TEXT="1-6", "ABC|ACB|BAC|BCA|CAB|CBA", 0, 0, 6, 9, "center",
"center", 90
E queste sono le carte (risultanti dalla funzione "Build deck"):
Ma si possono ottenere allo stesso modo anche le ripetizioni, con i prefissi CR e PR.
Da questo codice:
CR[LAB1]3="A|B|C"
si ottiene questa etichetta: "AAA|AAB|AAC|ABB|ABC|ACC|BBB|BBC|BCC|CCC". E da questo codice:
PR[LAB1]3="A|B|C"
si ottiene:
"AAA|AAB|AAC|ABA|ABB|ABC|ACA|ACB|ACC|BAA|BAB|BAC|BBA|BBB|BBC|BCA|BCB|BCC|CAA|CAB|CAC|CBA|CBB|CBC|CCA|CCB|CCC
Ricordate che non siete limitati a elementi di una singola lettera. Potete scrivere:
PR[LAB1]3="Alpha|Beta|Gamma"
e otterrete questa mostruosità (ho inserito qualche a-capo):
"AlphaAlphaAlpha|
AlphaAlphaBeta|
AlphaAlphaGamma|
AlphaBetaAlpha|
AlphaBetaBeta|
AlphaBetaGamma|
AlphaGammaAlpha|
AlphaGammaBeta|
AlphaGammaGamma|
BetaAlphaAlpha|
BetaAlphaBeta|
BetaAlphaGamma|
BetaBetaAlpha|
BetaBetaBeta|
BetaBetaGamma|
BetaGammaAlpha|
BetaGammaBeta|
BetaGammaGamma|
GammaAlphaAlpha|
GammaAlphaBeta|
GammaAlphaGamma|
GammaBetaAlpha|
GammaBetaBeta|
GammaBetaGamma|
GammaGammaAlpha|
GammaGammaBeta|
GammaGammaGamma"
Con la versione 1.9b, ho introdotto un paio di interessanti funzioni che possono essere utilizzate con il motore delle permutazioni: come prima cosa non dovete specificare il numero di carte di cui sarà composto il mazzo. Se non sapete quante carte risulteranno da questo:
PR[LAB1]3="A|B|C"
Nel parametro range di un comando potrete utilizzare questa sintassi:
TEXT=1-{(LAB1)},[LAB1],0,0,6,9,0
Ricordate, { e } sono i delimitatori di un'espressione, ( e ) sono i delimitatori dell'etichetta. L'espressione 1-{(LAB1)} sarà convertita in 1-27 durante l'esecuzione.
In più, potete estrarre delle sottostringhe da un'etichetta, utilizzando questa sintassi:
[ETICHETTA:carattere iniziale,numero di caratteri]
Come può essere utilizzata questa funzione? Se volete creare tutte le combinazioni di pianura, boschi e montagne in una tessera con quattro triangoli, potete utilizzare uno script come questo:
cardsize=4,4
[quarter1]=0,0,2,2,0,4
[quarter2]=0,0,4,0,2,2
[quarter3]=4,0,4,4,2,2
[quarter4]=0,4,2,2,4,4
pr[schema]4=P|F|M
[all]=1-{(schema)}
[color_p]=#00FF00
[color_f]=#008000
[color_m]=#C0C0C0
triangle=[all],[quarter1],[color_[schema:1,1]]
triangle=[all],[quarter2],[color_[schema:2,1]]
triangle=[all],[quarter3],[color_[schema:3,1]]
triangle=[all],[quarter4],[color_[schema:4,1]]
Con [color_schema:1,1]] il programma estrarrà la prima lettera dell'etichetta, aggiungerà color_ prima di questa, e si otterrà così un'etichetta di un colore.
Questo è il risultato (quattro pagine):
Potete scaricare questo script qui e il PDF qui.
L'ultimo script crea 81 tessere, ma non sono uniche: troverete molte tessere ruotate. Con la versione 1.9c ho introdotto un parametro utile per rimuovere le rotazioni dal risultato di combinazioni/permutazioni (solo se applicato in uno schema circolare); se modificate questa linea:
pr[schema]4=P|F|M
con questa linea (aggiungendo una "x"):
prx[schema]4=P|F|M
Il risultato sarà composto da 24 tessere uniche.
Ciao,
/\/and