introduzione
Da Wikipedia :
Una tassellatura di una superficie piana è la piastrellatura di un piano utilizzando una o più forme geometriche, chiamate tessere, senza sovrapposizioni e spazi vuoti.
Di seguito è riportata una tassellazione abbastanza nota:
I rombi sono piastrellati in un modo che non provoca sovrapposizioni o lacune e simula lo scambio di colonne di cubi.
Compito
Il tuo compito è quello di scrivere un programma che tessera i rombi allo stesso modo dell'immagine sopra. L'input per il programma saranno le dimensioni della tassellatura:, height x width
dove larghezza è la quantità di colonne e altezza è la quantità di righe.
Un cubo singolo 1 x 1
(3 tessere di rombo) è rappresentato esattamente come:
_____
/\ \
/ \ \
/ \ _____\
\ / /
\ / /
\/_____ /
Quindi, se l'input / le dimensioni sono 3 x 2
, questo dovrebbe essere l'output:
_____
/\ \
/ \ \
/ \ _____\ _____
\ / /\ \
\ / / \ \
\/_____ / \ _____\
/\ \ / /
/ \ \ / /
/ \ _____\/_____ /
\ / /\ \
\ / / \ \
\/_____ / \ _____\
/\ \ / /
/ \ \ / /
/ \ _____\/_____ /
\ / /\ \
\ / / \ \
\/_____ / \ _____\
\ / /
\ / /
\/_____ /
Come puoi vedere, ci sono 3 righe (altezza) e 2 colonne (larghezza). Le colonne si stanno scambiando su e giù. Anche il tuo programma dovrebbe farlo e iniziare più in alto. Ad esempio, 3 x 3
sarebbe:
_____ _____
/\ \ /\ \
/ \ \ / \ \
/ \ _____\ _____ / \ _____\
\ / /\ \ / /
\ / / \ \ / /
\/_____ / \ _____\/_____ /
/\ \ / /\ \
/ \ \ / / \ \
/ \ _____\/_____ / \ _____\
\ / /\ \ / /
\ / / \ \ / /
\/_____ / \ _____\/_____ /
/\ \ / /\ \
/ \ \ / / \ \
/ \ _____\/_____ / \ _____\
\ / /\ \ / /
\ / / \ \ / /
\/_____ / \ _____\/_____ /
\ / /
\ / /
\/_____ /
Regole
- Il risultato deve essere emesso, l'input può essere preso come preferisci ma deve corrispondere ad altezza e larghezza
- Sono consentite nuove righe finali
- Le colonne di tassellatura iniziano sempre dall'alto, quindi si alternano su e giù
- I lati delle tessellazioni devono essere condivisi e le tessellazioni devono essere posizionate correttamente tra le altre colonne senza spazi vuoti
- L'invio può essere una funzione o un programma completo
- Il tuo programma deve stampare esattamente l'output sopra dato lo stesso input; in altre parole, l'output deve seguire lo stesso formato per cubi / tassellazioni
ipotesi
- Puoi presumere che l'input sarà sempre maggiore di
1 x 1
, quindi non hai bisogno di casi in cui viene immesso uno zero
punteggio
Questo è code-golf , quindi vince il codice più breve in byte. Sono inoltre vietate le scappatoie standard .