Hier ist ein einfacher ASCII-Kunst- Rubin :
___
/\_/\
/_/ \_\
\ \_/ /
\/_\/
Als Juwelier der ASCII Gemstone Corporation müssen Sie die neu erworbenen Rubine untersuchen und eventuelle Mängel notieren.
Zum Glück sind nur 12 Arten von Fehlern möglich, und Ihr Lieferant garantiert, dass kein Rubin mehr als einen Fehler aufweist.
Die 12 Defekte entsprechen den Ersatz von einem des 12 Innen _
, /
oder \
Zeichen des Rubins mit einem Leerzeichen ( ). Der äußere Umfang eines Rubins weist niemals Mängel auf.
Die Mängel sind nummeriert, je nachdem, in welchem inneren Zeichen ein Leerzeichen steht:
So sieht ein Rubin mit Defekt 1 aus:
___
/\_/\
/_/ _\
\ \_/ /
\/_\/
Ein Rubin mit Defekt 11 sieht folgendermaßen aus:
___
/\_/\
/_/ \_\
\ \_/ /
\ _\/
Das ist die gleiche Idee für alle anderen Mängel.
Herausforderung
Schreiben Sie ein Programm oder eine Funktion, die die Zeichenfolge eines einzelnen, möglicherweise defekten Rubins aufnimmt. Die Fehlernummer sollte ausgedruckt oder zurückgesandt werden. Die Fehlernummer ist 0, wenn kein Fehler vorliegt.
Nehmen Sie Eingaben aus einer Textdatei, einem stdin oder einem Zeichenfolgenfunktionsargument entgegen. Senden Sie die Fehlernummer zurück oder drucken Sie sie auf stdout.
Sie können davon ausgehen, dass der Rubin einen nachgestellten Zeilenumbruch hat. Sie können nicht davon ausgehen, dass es Leerzeichen oder führende Zeilenumbrüche enthält.
Der kürzeste Code in Bytes gewinnt. ( Handy-Byte-Zähler. )
Testfälle
Die 13 genauen Rubintypen, gefolgt von der erwarteten Ausgabe:
___
/\_/\
/_/ \_\
\ \_/ /
\/_\/
0
___
/\_/\
/_/ _\
\ \_/ /
\/_\/
1
___
/\ /\
/_/ \_\
\ \_/ /
\/_\/
2
___
/\_/\
/_ \_\
\ \_/ /
\/_\/
3
___
/\_/\
/_/ \_\
\ _/ /
\/_\/
4
___
/\_/\
/_/ \_\
\ \ / /
\/_\/
5
___
/\_/\
/_/ \_\
\ \_ /
\/_\/
6
___
/\_/\
/_/ \ \
\ \_/ /
\/_\/
7
___
/\_ \
/_/ \_\
\ \_/ /
\/_\/
8
___
/ _/\
/_/ \_\
\ \_/ /
\/_\/
9
___
/\_/\
/ / \_\
\ \_/ /
\/_\/
10
___
/\_/\
/_/ \_\
\ \_/ /
\ _\/
11
___
/\_/\
/_/ \_\
\ \_/ /
\/_ /
12