La configurazione iniziale di Wooden Block Puzzle
- un rettangolo 8x4 + un quadrato 8x8
Il codice per le mosse supera le colonne disponibili sullo schermo… ma deve stare sulla stessa riga!
GLOBAL SPAZIO, DIM, COLORI, MOSSE
SPAZIO = 60
DIM = 48
COLORI = {“R2”:“WHITE”,“P3”:“PURPLE”,“I4”:“BLACK”,“Q4”:“GREEN”,“L4”:“BLUE”,“T4”:“YELLOW”,“S4”:“RED”,“C5”:“TOMATO”}
MOSSE = {
“R2”:[[90,90,180,-90,-90,0],[90,180,180,-90,0,0]],
“P3”:[[90,90,180,-90,180,-90,0,0],[90,90,180,180,-90,0,-90,0],[90,180,180,-90,-90,0,90,0],[90,180,90,180,-90,-90,0,0]],
“I4”:[[90,90,90,90,180,-90,-90,-90,-90,0],[90,180,180,180,180,-90,0,0,0,0]],
“Q4”:[[90,90,180,180,-90,-90,0,0]],
“L4”:[[90,90,180,-90,180,180,-90,0,0,0],[90,90,90,180,180,-90,0,-90,-90,0],[90,180,180,180,-90,-90,0,90,0,0],[90,180,90,90,180,-90,-90,-90,0,0],[90,90,180,180,180,-90,0,0,-90,0],[90,180,-90,-90,-90,0,90,90,0],[90,180,180,90,180,-90,-90,0,0,0],[90,90,90,180,-90,-90,180,-90,0,0]],
“T4”:[[90,180,90,180,-90,180,-90,0,0,0],[90,90,90,180,-90,180,-90,0,-90,0],[90,180,180,180,-90,0,-90,0,90,0],[90,180,90,180,-90,-90,-90,0,90,0]],
“S4”:[[90,180,90,180,180,-90,0,-90,0,0],[90,90,180,-90,180,-90,-90,0,90,0],[90,180,180,-90,180,-90,0,0,90,0],[90,90,180,90,180,-90,-90,0,-90,0]],
“C5”:[[90,90,180,-90,180,90,180,-90,-90,0,0,0],[90,90,90,180,180,-90,0,-90,180,-90,0,0],[90,90,180,180,180,-90,-90,0,90,0,-90,0],[90,180,90,0,90,180,180,-90,-90,-90,0,0]]
}
TO posizione x y
GLOBAL SPAZIO,DIM
X = SPAZIO+DIM*(x-1)
Y = SPAZIO+DIM*(y-1)
POSITION [X,Y]
END
TO linea x1 y1 x2 y2
PENUP posizione x1 y1
PENDOWN posizione x2 y2
END
TO griglia
REPEAT 9 [ linea 1 REPCOUNT 13 REPCOUNT ]
REPEAT 13 [ linea REPCOUNT 1 REPCOUNT 9 ]
END
TO pezzo k x y r
GLOBAL COLORI, DIM, MOSSE
FILLCOLOR COLORI[k]
PENUP
posizione x y
PENDOWN
FOR dir in MOSSE[k][r] [
SETHEADING dir
FORWARD DIM
]
FILL
END
CLEARSCREEN
HIDETURTLE
PENCAP “round”
PENSIZE 8
PENCOLOR “SILVER”
griglia
PENSIZE 1
PENCOLOR “BLACK”
pezzo “L4” 1 1 7 pezzo “T4” 1 3 1 pezzo “C5” 1 4 3 pezzo “P3” 1 6 3 pezzo “I4” 1 8 0 pezzo “R2” 2 2 0 pezzo “S4” 2 6 3 pezzo “I4” 4 1 1
pezzo “R2” 4 5 1 pezzo “C5” 5 1 0 pezzo “Q4” 5 4 0 pezzo “T4” 5 6 1 pezzo “L4” 5 7 3 pezzo “T4” 7 1 2 pezzo “S4” 7 7 3 pezzo “Q4” 8 1 0
pezzo “S4” 8 3 2 pezzo “R2” 8 5 1 pezzo “I4” 9 3 1 pezzo “P3” 9 7 1 pezzo “L4” 10 1 0 pezzo “C5” 10 4 0 pezzo “R2” 11 3 0 pezzo “Q4” 11 7 0
pezzo “P3” 12 1 2 pezzo “T4” 12 4 2
Osserva
- i colori e il numero di pezzi per ogni tipo sono diversi rispetto a Building Block
- per i pezzi asimmetrici, L4 e S4, sono presenti anche le configurazioni che si ottengono ribaltando il pezzo
- posizione x y
Posiziona la tartaruga alle coordinate fisiche corrispondenti alle coordinate logiche x y - linea x1 y1 x2 y2
Traccia una linea dal punto x1 y1 al punto x2 y2 - griglia
Traccia tutte le linee per tassellare la superficie di gioco - pezzo k x y r
Disegna il pezzo utilizzando i parametri- k, il nome del pezzo, per recuperare il colore, COLORE[k], e le mosse per il perimetro, MOSSE[k]
- x y, la posizione logica del primo angolo in alto a sinistra del pezzo
- r, la rotazione del pezzo per recupere le mosse corrispondenti, MOSSE[k][r]