Поки ми тримаємося трикутними сітками , я хотів би зазначити, що на трикутній сітці є еквівалент поліоміно . Їх називають поліамантами , і вони являють собою форми, утворені склеюванням рівносторонніх трикутників разом по їх краях. У цьому виклику ви вирішите вирішити, які підмножини трикутної сітки є поліамантами та чи мають у них отвори. Оскільки для виготовлення багатокутника з отвором у ньому потрібно лише 9 трикутників, ваш код повинен бути якомога коротшим.
Сітка
Ми будемо використовувати схему трикутної сітки Мартіна для введення:
Зверніть увагу на те, що центри трикутників утворюють приблизно прямокутну сітку і що верхній лівий трикутник «вказує» вгору. Тоді ми можемо описати підмножину цієї сітки, надавши прямокутну "зіркову карту" із зазначенням, які трикутники включені, а які не входять. Наприклад, ця карта:
** **
*****
відповідає найменшому поліаманту, який містить отвір:
Отвори
Поліамант, який містить отвір, як у наведеному вище прикладі (область, яка не є частиною поліамону, яка оточена з усіх боків регіонами, які є ), топологічно не пов'язана просто .
Змагання
Напишіть функцію або програму, яка приймає як вхід «зіркову карту», як описано вище, і виводить форму, якщо і лише тоді, коли зазначений підмножина трикутної сітки є просто з’єднаним поліамантом .
Більше прикладів
*** ***
*******
відповідає поліаманту
яка просто пов'язана.
* *
** **
***
відповідає поліаманту
яка просто пов'язана.
** **
*** **
****
відповідає не -поліям
які не були б просто зв'язані, навіть якщо б це було був поліамант.
Спеціальність введення
- Вхід буде складатися лише з зірочок, пробілів та каналів рядків.
- Першим символом введення завжди буде пробіл чи зірочка (відповідна висхідному трикутнику у верхньому лівому куті сітки).
- У першому та останньому рядках завжди буде хоча б одна зірочка.
- Немає гарантій, що рядки після першого рядка не будуть порожніми. Двома каналами рядків підряд можуть відображатися в законному введенні.
- Довжина рядків не повинна бути однаковою.
Умова виграшу
Це є код-гольф, тому найкоротша відповідь у байтах виграє.
Випробування
Карти Truthy:
1) *
2) *
*
3) **
4) *** ***
*******
5) * *
** **
***
6) *
**
*
7) **
***
****
8) ****
** *
*****
9) ***********
** ** **
**** ** **
**
************
Фальшиві карти:
1) *
*
*
2) * *
3) *
*
4) **
**
5) ***
***
6) ** **
*****
7) ** **
*** **
****
8) *
*
9) *****
** *
*****
AV VA\nVAVAV
замість того** **\n*****
, щоб людині було легше візуалізувати. Я вже вніс редагування однієї з діаграм ASCII Мартіна.