Scrivi un programma che contiene un blocco rettangolare di testo composto da X"se .", come questo grezzo A:
......
..XX..
.X..X.
.XXXX.
.X..X.
.X..X.
Stampa una rappresentazione di questa griglia ruotata di 45 gradi in senso antiorario disegnando una barra - avanti o indietro a seconda del contesto - ovunque un Xbordo a .o il lato della griglia (con spazi che riempiono il resto):
/\/\
/ /\ \
\/ / \
/\/ /\ \
\ / \/
\ \
\ \
\/
Il numero di spazi finali e iniziali (e newline) non ha importanza fino a quando la forma delle X"s" nell'input è mantenuta dalle barre. Va bene tagliare file o colonne extra di ..
Per l'I / O è possibile utilizzare qualsiasi combinazione di parametri stdin / stdout / file / riga di comando. Ad esempio, lo script potrebbe contenere un nome file del X.modello e riscrivere il file con il modello barra. Oppure il tuo script potrebbe prendere lo X.schema da stdin riga per riga (premendo dal termine) e produrre il risultato su stdout.
L'input può essere arbitrariamente grande, ma si può presumere che sia sempre ben formattato.
Nessun carattere a parte / \e newline dovrebbe essere in alcun output.
punteggio
Vince il codice più breve in byte. Utilizzare https://mothereff.in/byte-counter come contatore byte se si utilizzano caratteri non ASCII.
Bonus: meno 50 byte se è possibile modificare (sostituire, non rimuovere) un carattere nel programma in modo che emetta la griglia della barra ruotata di 45 gradi in senso orario , ad esempio:
/\/\
/ /\ \
/ \ \/
/ /\ \/\
\/ \ /
/ /
/ /
\/
Campioni di input
XXXXXXXXX
X.......X
X.XXXXX.X
X.X...X.X
X.X.X.X.X
X.X...X.X
X.XXXXX.X
X.......X
XXXXXXXXX
XXX...XXX....XXX...XXX
X..X..X..X..X.....X...
XXX...XXX...X.....X.XX
X.....X.....X.....X..X
X.....X......XXX...XXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX...X
X...X...............X...............X...........X...................X...X
X...X...XXXXXXXXX...X...XXXXX...XXXXXXXXX...XXXXX...XXXXX...XXXXX...X...X
X...............X.......X...X...........X...........X...X...X.......X...X
XXXXXXXXX...X...XXXXXXXXX...XXXXXXXXX...XXXXX...X...X...X...XXXXXXXXX...X
X.......X...X...............X...........X...X...X...X...X...........X...X
X...X...XXXXXXXXXXXXX...X...X...XXXXXXXXX...XXXXX...X...XXXXXXXXX...X...X
X...X...............X...X...X.......X...........X...........X.......X...X
X...XXXXXXXXXXXXX...XXXXX...XXXXX...X...XXXXX...XXXXXXXXX...X...XXXXX...X
X...........X.......X...X.......X...X.......X...........X...X...........X
X...XXXXX...XXXXX...X...XXXXX...X...XXXXXXXXX...X...X...X...XXXXXXXXXXXXX
X.......X.......X...X...X.......X.......X.......X...X...X.......X.......X
XXXXXXXXXXXXX...X...X...X...XXXXXXXXX...X...XXXXX...X...XXXXX...XXXXX...X
X...........X...X...........X.......X...X.......X...X.......X...........X
X...XXXXX...X...XXXXXXXXX...XXXXX...X...XXXXX...XXXXX...XXXXXXXXXXXXX...X
X...X.......X...........X...........X.......X...X...X...............X...X
X...X...XXXXXXXXX...X...XXXXX...XXXXXXXXX...X...X...XXXXXXXXXXXXX...X...X
X...X...........X...X...X...X...X...........X...............X...X.......X
X...XXXXXXXXX...X...X...X...XXXXX...XXXXXXXXX...XXXXXXXXX...X...XXXXXXXXX
X...X.......X...X...X...........X...........X...X.......X...............X
X...X...XXXXX...XXXXX...XXXXX...XXXXXXXXX...XXXXX...X...XXXXXXXXX...X...X
X...X...................X...........X...............X...............X...X
X...XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Domande correlate:
Disegna la curva di Hilbert usando le barre
Allinea una forma ASCII allineata orizzontalmente ad angolo retto lungo una diagonale