Ecco un semplice rubino di arte ASCII :
___
/\_/\
/_/ \_\
\ \_/ /
\/_\/
Come gioielliere della ASCII Gemstone Corporation, il tuo lavoro è ispezionare i rubini appena acquisiti e lasciare una nota su eventuali difetti che trovi.
Fortunatamente, sono possibili solo 12 tipi di difetti e il vostro fornitore garantisce che nessun rubino avrà più di un difetto.
I 12 difetti corrispondono alla sostituzione di uno dei 12 interne _
, /
o \
caratteri di rubino con uno spazio ( ). Il perimetro esterno di un rubino non presenta mai difetti.
I difetti sono numerati in base al personaggio interno che ha uno spazio al suo posto:
Quindi un rubino con difetto 1 assomiglia a questo:
___
/\_/\
/_/ _\
\ \_/ /
\/_\/
Un rubino con difetto 11 si presenta così:
___
/\_/\
/_/ \_\
\ \_/ /
\ _\/
È la stessa idea per tutti gli altri difetti.
Sfida
Scrivi un programma o una funzione che includa la stringa di un singolo rubino potenzialmente difettoso. Il numero del difetto deve essere stampato o restituito. Il numero del difetto è 0 se non ci sono difetti.
Accetta input da un file di testo, stdin o un argomento della funzione stringa. Restituire il numero del difetto o stamparlo su stdout.
Puoi presumere che il rubino abbia una nuova riga finale. Si può non pensare che ci sono delle finali spazi e portano a capo.
Vince il codice più breve in byte. ( Pratico contatore di byte. )
Casi test
I 13 tipi esatti di rubini, seguiti direttamente dalla produzione prevista:
___
/\_/\
/_/ \_\
\ \_/ /
\/_\/
0
___
/\_/\
/_/ _\
\ \_/ /
\/_\/
1
___
/\ /\
/_/ \_\
\ \_/ /
\/_\/
2
___
/\_/\
/_ \_\
\ \_/ /
\/_\/
3
___
/\_/\
/_/ \_\
\ _/ /
\/_\/
4
___
/\_/\
/_/ \_\
\ \ / /
\/_\/
5
___
/\_/\
/_/ \_\
\ \_ /
\/_\/
6
___
/\_/\
/_/ \ \
\ \_/ /
\/_\/
7
___
/\_ \
/_/ \_\
\ \_/ /
\/_\/
8
___
/ _/\
/_/ \_\
\ \_/ /
\/_\/
9
___
/\_/\
/ / \_\
\ \_/ /
\/_\/
10
___
/\_/\
/_/ \_\
\ \_/ /
\ _\/
11
___
/\_/\
/_/ \_\
\ \_/ /
\/_ /
12