Voici un simple rubis d' art ASCII :
___
/\_/\
/_/ \_\
\ \_/ /
\/_\/
En tant que bijoutier pour l'ASCII Gemstone Corporation, votre travail consiste à inspecter les rubis nouvellement acquis et à laisser une note sur les défauts que vous trouvez.
Heureusement, seuls 12 types de défauts sont possibles, et votre fournisseur garantit qu'aucun rubis n'aura plus d'un défaut.
Les 12 défauts correspondent au remplacement de l' un des 12 internes _
, /
ou des \
caractères du rubis avec un caractère d'espace ( ). Le périmètre extérieur d'un rubis n'a jamais de défauts.
Les défauts sont numérotés selon le caractère intérieur qui a une place à sa place:
Donc, un rubis avec défaut 1 ressemble à ceci:
___
/\_/\
/_/ _\
\ \_/ /
\/_\/
Un rubis avec défaut 11 ressemble à ceci:
___
/\_/\
/_/ \_\
\ \_/ /
\ _\/
C'est la même idée pour tous les autres défauts.
Défi
Écrivez un programme ou une fonction qui prend la chaîne d'un seul rubis potentiellement défectueux. Le numéro de défaut doit être imprimé ou retourné. Le numéro de défaut est 0 s'il n'y a pas de défaut.
Prenez l'entrée d'un fichier texte, stdin ou un argument de fonction de chaîne. Renvoyez le numéro du défaut ou imprimez-le sur stdout.
Vous pouvez supposer que le rubis a une nouvelle ligne de fin. Vous ne pouvez pas supposer qu'il comporte des espaces de fin ou des nouvelles lignes de début.
Le code le plus court en octets gagne. ( Compteur d'octets pratique. )
Cas de test
Les 13 types exacts de rubis, suivis directement par leur sortie attendue:
___
/\_/\
/_/ \_\
\ \_/ /
\/_\/
0
___
/\_/\
/_/ _\
\ \_/ /
\/_\/
1
___
/\ /\
/_/ \_\
\ \_/ /
\/_\/
2
___
/\_/\
/_ \_\
\ \_/ /
\/_\/
3
___
/\_/\
/_/ \_\
\ _/ /
\/_\/
4
___
/\_/\
/_/ \_\
\ \ / /
\/_\/
5
___
/\_/\
/_/ \_\
\ \_ /
\/_\/
6
___
/\_/\
/_/ \ \
\ \_/ /
\/_\/
7
___
/\_ \
/_/ \_\
\ \_/ /
\/_\/
8
___
/ _/\
/_/ \_\
\ \_/ /
\/_\/
9
___
/\_/\
/ / \_\
\ \_/ /
\/_\/
10
___
/\_/\
/_/ \_\
\ \_/ /
\ _\/
11
___
/\_/\
/_/ \_\
\ \_/ /
\/_ /
12