Mentre siamo su una griglia triangolare , vorrei sottolineare che esiste un equivalente di poliomino su una griglia triangolare. Si chiamano poliamondi , e sono forme formate incollando triangoli equilateri lungo i loro bordi. In questa sfida dovrai decidere quali sottoinsiemi di una griglia triangolare sono poliamammanti e se presentano buchi. Poiché bastano 9 triangoli per creare un poliamondolo con un foro, il codice deve essere il più corto possibile.
La griglia
Useremo il layout a griglia triangolare di Martin per l'input:
Prestare attenzione al fatto che i centri dei triangoli formano una griglia approssimativamente rettangolare e che il triangolo superiore sinistro "punta" verso l'alto. Possiamo descrivere un sottoinsieme di questa griglia, quindi, dando una "mappa stellare" rettangolare che indica quali triangoli sono inclusi e quali non sono inclusi. Ad esempio, questa mappa:
** **
*****
corrisponde al più piccolo poliammide che contiene un foro:
fori
Un poliammide che contiene un buco come nell'esempio sopra (una regione non parte del poliamondolo, che è circondata su tutti i lati da regioni che lo sono ) non è, topologicamente parlando, semplicemente collegata .
La sfida
Scrivi una funzione o un programma che accetta come input una "mappa stellare" come descritto sopra e genera un vero se e solo se il sottoinsieme indicato della griglia triangolare è un poliamondolo semplicemente connesso .
Altri esempi
*** ***
*******
corrisponde al poliammide
che è semplicemente connesso.
* *
** **
***
corrisponde al poliammide
che è semplicemente connesso.
** **
*** **
****
corrisponde al non- poliamminico
che non potrebbe essere semplicemente connessa anche se fosse un polyiamond.
Input Spec
- L'input consisterà solo di asterischi, spazi e avanzamenti di riga.
- Il primo carattere di input sarà sempre uno spazio o un asterisco (corrispondente al triangolo rivolto verso l'alto nell'angolo in alto a sinistra della griglia).
- Ci sarà sempre almeno un asterisco nella prima e nell'ultima riga.
- Non vi è alcuna garanzia che le righe dopo la prima riga non saranno vuote. Due input di riga di seguito possono apparire in un input legittimo.
- Le lunghezze delle linee non devono necessariamente essere tutte uguali.
Condizioni vincenti
Questo è code-golf , quindi vince la risposta più breve in byte.
Casi test
Mappe veritiere:
1) *
2) *
*
3) **
4) *** ***
*******
5) * *
** **
***
6) *
**
*
7) **
***
****
8) ****
** *
*****
9) ***********
** ** **
**** ** **
**
************
Mappe Falsy:
1) *
*
*
2) * *
3) *
*
4) **
**
5) ***
***
6) ** **
*****
7) ** **
*** **
****
8) *
*
9) *****
** *
*****
AV VA\nVAVAV
invece** **\n*****
che in quanto rende più semplice la visualizzazione di un essere umano. Ho già apportato una modifica a uno dei diagrammi ASCII di Martin.