Se lanci un uovo ASCII in una determinata direzione, finisci con uno splat ASCII di dimensione n . "Inizia" con uno o(il tuorlo) e continua in una data direzione con "linee" costituite da 2 fino a n * 's. Gli *"sono" separati da uno "spazio", e otutti e le "linee" di *"sono" separate da "linee" di "spazio".
La direzione dello splat può essere una delle otto direzioni da o, ad esempio:
1 2 3
4 o 5
6 7 8
Ecco alcuni esempi di simboli ASCII di dimensioni 4 in direzioni 5, 2e 3rispettivamente. Sulla sinistra è il simbolo ASCII effettivo, e sulla destra è la stessa splat ma con le "linee" di "spazio" sostituito con "linee" reali (cioè -o \oppure |a seconda della direzione) solo chiarire cosa si intende per un "linea" di spazio.
Size 4, direction 5
* | | |*
* | |*|
* * |*| |*
o * o| |*|
* * |*| |*
* | |*|
* | | |*
Size 4, direction 2
* * * * * * * *
-------
* * * * * *
-------
* * * *
-------
o o
Size 4, direction 3
* *
\
* * *\*
\ \
* * * *\*\*
\ \ \
o * * * o\*\*\*
Sfida
Dato n ≥ 1 e una delle 8 direzioni possibili, scrivere una funzione o un programma che emetta lo splat ASCII di dimensione n nella direzione data.
Ingresso e uscita
È consentito qualsiasi formato di input coerente e ragionevole. Non è necessario mappare le indicazioni per gli interi da 1 a 8 nello stesso modo in cui ho fatto - se un altro modo di specificare la direzione è più semplice, andare avanti. Ma dì cosa hai fatto se non è chiaro.
L'uscita consisterà o, *spazi (U + 0020) e ritorni a capo (U + 000A) che producono lo splat ASCII. Sono consentiti spazi iniziali, finali, altrimenti spazi bianchi su qualsiasi linea.
Regole
Questo è code-golf . Si applicano le regole standard.
Più esempi
Size 1, any direction
o
Size 3, direction 6
* * o
* *
*
Size 5, direction 7
o
* *
* * *
* * * *
* * * * *