Виклик
Враховуючи форму мистецтва ASCII, ви повинні з’ясувати, форма є звичайною шестикутником чи ні.
Шестикутники
Звичайний шестикутник визначається за допомогою двох правил:
- Він має шість сторін
- Кожна сторона має рівну кількість символів
Наприклад, наступна форма є регулярною, але вона не має шести сторін, і тому не є звичайним шестикутником :
B a a h
s a i d
y o u r
g a o t
Аналогічно, наступна форма має шість сторін, але має сторони різної довжини і тому не є звичайним шестикутником:
* *
* * *
* * * *
* * *
* *
Однак наступна форма має шість сторін, і всі сторони мають однакову кількість символів, тому це звичайний шестикутник:
T h e
h e x a
g o n s a
r e c o
m i n
Правила
Вихід повинен бути косим або фальсийним значенням (truthy, якщо форма є звичайним шестикутником, фальси, якщо ні).
Фігури завжди містять символи для друку ASCII.
Межа форми ніколи не міститиме пробілів. Якщо це станеться, ви можете повернути фальси.
Можуть бути довільні кількості пробілів до та / або після форми.
Наприклад, усі кути форми можуть бути не рівними, наприклад, наступна форма є дійсною вхідною формою:
. . .
. . .
. . . . .
. . . .
. . .
Це поверне значення фальси.
Усі вхідні форми знаходяться на сітці, розділеній пробілом. Шестикутний вхід буде на шахматній сітці (кожен рядок зміщений від наступного).
Приклади
Truthy
Наступні форми повинні повертати триєдині значення:
# _
+ + +
9 :
5 6 7
8 9 0 1
2 3 4 5 6
7 8 9 0
1 2 3
t h i s
i s
a h
e x
a g
o n
! ! ! !
5 6 7
8 9 0 1
2 3 4 5 6
7 8 9 0
1 2 3
Фальсі
Далі слід повернути значення фальси
r e c t a
n g l e s
h e l l o
w o r l d s
t h i s i s b
e t a d e c
a y n o w
*
* *
* * *
.....
.......
.........
.......
.....
Ця форма не знаходиться на простірці, розділеній сіткою, і не є шаруватими.
* * * *
---------
* * * * * *
-------------
* * * * * *
---------
* * * *
5 6 7
8 9 0 1
2 3 4 5 6
7 8 9 0
1 2 3
Для введення одного символу ваша програма може виводити або truthy або falsey:
&
Перемога
Виграє найкоротша програма в байтах.
5 6 7\n8 9 0 1\n2 3 4 5 6\n7 8 9 0\n1 2 3
та один з додатковим пробілом, що веде до одного з рядків: ss5 6 7\nss8 9 0 1\n2 3 4 5 6\ns7 8 9 0\nss1 2 3
(провідні пробіли замінюються, s
щоб зробити це трохи більш зрозумілим у цій неформатованій формі) . Всі 10 ваших тестових випадків на даний момент коректно перевіряються з моїм кодом, але ці два випадки не змогли б використати підхід, який я використав.