Ось простий арт- рубін ASCII :
___
/\_/\
/_/ \_\
\ \_/ /
\/_\/
Як ювелір для корпорації ASCII Gemstone, ваша робота - оглянути нещодавно придбані рубіни та залишити записку про будь-які вади, які ви знайдете.
На щастя, можливі лише 12 видів дефектів, і ваш постачальник гарантує, що жоден рубін не матиме більше одного дефекту.
У 12 дефектів відповідають заміні одного з 12 внутрішніх _
, /
або \
персонажів рубіна з символом пробілу ( ). Зовнішній периметр рубіна ніколи не має дефектів.
Дефекти нумеруються, згідно з якими внутрішній персонаж має пробіл на своєму місці:
Отже, рубін з дефектом 1 виглядає так:
___
/\_/\
/_/ _\
\ \_/ /
\/_\/
Рубін з дефектом 11 виглядає приблизно так:
___
/\_/\
/_/ \_\
\ \_/ /
\ _\/
Це ж ідея для всіх інших дефектів.
Виклик
Напишіть програму або функцію, яка містить рядки одного, потенційно несправного рубіна. Номер дефекту слід роздрукувати або повернути. Номер дефекту дорівнює 0, якщо дефекту немає.
Візьміть дані з текстового файлу, stdin або аргументу рядкової функції. Поверніть номер дефекту або роздрукуйте його для виведення.
Ви можете припустити, що в рубіні є зворотний новий рядок. Ви можете не припускати, що в ньому є пробіли чи провідні рядки.
Виграє найкоротший код у байтах. ( Зручний лічильник байтів. )
Випробування
13 точних типів рубінів з наступним очікуваним результатом:
___
/\_/\
/_/ \_\
\ \_/ /
\/_\/
0
___
/\_/\
/_/ _\
\ \_/ /
\/_\/
1
___
/\ /\
/_/ \_\
\ \_/ /
\/_\/
2
___
/\_/\
/_ \_\
\ \_/ /
\/_\/
3
___
/\_/\
/_/ \_\
\ _/ /
\/_\/
4
___
/\_/\
/_/ \_\
\ \ / /
\/_\/
5
___
/\_/\
/_/ \_\
\ \_ /
\/_\/
6
___
/\_/\
/_/ \ \
\ \_/ /
\/_\/
7
___
/\_ \
/_/ \_\
\ \_/ /
\/_\/
8
___
/ _/\
/_/ \_\
\ \_/ /
\/_\/
9
___
/\_/\
/ / \_\
\ \_/ /
\/_\/
10
___
/\_/\
/_/ \_\
\ \_/ /
\ _\/
11
___
/\_/\
/_/ \_\
\ \_/ /
\/_ /
12