Гексагональні сітки останнім часом стали досить популярним поворотом для викликів щодо двовимірних даних. Однак, схоже, що однаково цікаві трикутні сітки до цього часу були значною мірою занедбані. Я хотів би усунути це досить простим завданням.
По-перше, як ми представляємо трикутну сітку? Розглянемо наступний приклад (зараз ігноруй правильну схему):
Клітини акуратно потрапляють на звичайну сітку (відмінність від звичайної сітки лише в тому, що клітини вважаються суміжними):
1234567
89abcde
fghijkl
mnopqrs
Тепер, як показує правильна схема, трикутна сітка має три основні осі: горизонтальну та дві діагональні.
Виділяючи їх у сітці ASCII:
AVAVAVA
VAabcAV
fVAiAVl
mnVAVrs
Змагання
Вам надано прямокутну рядок, що представляє трикутну сітку (де верхній лівий кут - вгору спрямований трикутник). Більшість клітинок має бути .
, але рівно дві буде #
, наприклад:
....#
.#...
.....
Визначте, чи обидві #
вирівняні вздовж будь-якої з трьох осей сітки (тобто чи лежать вони в одному ряду в будь-якому з трьох напрямків, виділених вище). У цьому прикладі відповідь - «ні».
Ви можете написати програму або функцію, взявши введення через STDIN (або найближчу альтернативу), аргумент командного рядка або аргумент функції та вивівши результат через STDOUT (або найближчу альтернативу), значення повернення функції або параметр функції (out).
Введення може бути однією строкою, обмеженою подачею рядків або іншим зручним символом, або списком рядків. Ви можете використовувати будь-які два (послідовні) символи ASCII для друку замість .
та #
.
Вихід повинен бути триєжним значенням, якщо виділені комірки вирівняні, а фальш- значення - інакше.
Діють стандартні правила гольф-коду .
Випробування
Простір сітки:
.#..#.
#
#
...........
...#.......
...........
...........
...........
.......#...
...........
...........
.......#...
...........
...........
...........
...#.......
...........
.#.........
...........
...........
...........
...........
.......#...
...........
...........
...#.......
...........
...........
...........
...........
.......#...
.........#.
...........
...........
...........
...........
...#.......
...........
...........
.......#...
...........
...........
...........
...........
...#.......
...........
.#.....#...
...........
...........
...........
Фальшиві сітки:
#.....
.....#
.....#
#.....
...#.......
...........
...........
...........
...........
.......#...
...........
...........
...#.......
...........
...........
...........
...........
.........#.
.......#...
...........
...........
...........
...........
...#.......
...........
...........
.......#...
...........
...........
...........
...........
.#.........