Welk woord plaatsen we in het midden van de rechter driehoek?

puzzel
Voorbeeldoplossing van een driehoekige puzzel.
puzzel
Opgave van een driehoekige puzzel.

Het gezochte woord is KERSTMIS.

puzzel
Oplossing van de linkse driehoekige puzzel.
puzzel
Oplossing van de rechtse driehoekige puzzel.

In beide driehoeken zijn alle woorden op de hoekpunten even lang. Het gezochte woord in het midden van de driehoek is even lang als de woorden op de hoekpunten. Het wordt gevonden door te starten bij een hoekpunt (hier telkens het hoekpunt bovenaan met een bredere rand), de hoekpunten in een bepaalde richting af te lopen (hier telkens in wijzerzin) en van de opeenvolgende woorden telkens de letter op de volgende positie te nemen (de eerste letter van het eerste woord, de tweede letter van het tweede woord, enzoverder). We hebben de letters die het gezochte woord vormen in het rood aangeduid.

We moeten ons echter niet beperken tot driehoeken: veelhoeken met meer dan drie hoekpunten zijn ook mogelijk. Bovendien moeten we ook niet noodzakelijk bij het bovenste hoekpunt beginnen. Als we bijvoorbeeld in het vierkant hieronder beginnen bij het onderste hoekpunt en de woorden op de hoekpunten in wijzerzin aflopen, dan bekomen we het woord SNEEUWMAN. Het kan ook zijn dat we de hoekpunten in tegenwijzerzin moeten aflopen. Als we bijvoorbeeld in onderstaande vijfhoek beginnen bij het hoekpunt rechtsonder en de woorden op de hoekpunten in tegenwijzerzin aflopen, dan spellen we het woord ENGELENHAAR.

puzzel
Oplossing van een vierkante puzzel.
puzzel
Oplossing van een vijfhoekige puzzel.

Opgave

Een veelhoek is een puzzel waarbij een reeks woorden met $$m$$ letters op de $$n$$ hoekpunten van een veelhoek geplaatst worden. De puzzel wordt voorgesteld als een reeks (list of tuple)

Een mogelijke oplossing van een puzzel is een woord (str) van $$m$$ letters dat kan gevonden worden door te starten bij een hoekpunt, de hoekpunten in een bepaalde richting af te lopen (wijzerzin of tegenwijzerzin) en van de opeenvolgende woorden telkens de letter op de volgende positie te nemen. Gevraagd wordt:

Voorbeeld

>>> isveelhoek(['DRIEHOEK', 'KEERMUUR', 'NACHTBUS'])
True
>>> isveelhoek(('kuisheid', 'RELATIES', 'AFREMMEN'))
False
>>> isveelhoek('SETPUNTEN, INKTZWART, OVERNEMER, WATERSTAD')
False
>>> isveelhoek(('ERONDERDOOR', 'ONTSPANNEND', 'BEGINSCHERM', 3.14, 'FAMILIEGRAF'))
False

>>> oplossing(['DRIEHOEK', 'KEERMUUR', 'NACHTBUS'])
'DECEMBER'
>>> oplossing(('KUISHEID', 'RELATIES', 'AFREMMEN'))
'KERSTMIS'
>>> oplossing(['OVERNEMER', 'WATERSTAD', 'SETPUNTEN', 'INKTZWART'], start=2)
'SNEEUWMAN'
>>> oplossing(('DAMESROMANS', 'BEGINSCHERM', 'ONTSPANNEND', 'ERONDERDOOR', 'FAMILIEGRAF'), start=3, wijzerzin=False)
'ENGELENHAAR'

>>> oplossingen(['DRIEHOEK', 'KEERMUUR', 'NACHTBUS'])
{'DAEETUES', 'DECEMBER', 'KAIRTOUS', 'KRCRHBUK', 'NEIHMOUR', 'NREHHUUK'}
>>> oplossingen(('KUISHEID', 'RELATIES', 'AFREMMEN'), wijzerzin=True)
{'AULEHIED', 'KERSTMIS', 'RFIAMEEN'}
>>> oplossingen(['OVERNEMER', 'WATERSTAD', 'SETPUNTEN', 'INKTZWART'], wijzerzin=True)
{'IVTPZETET', 'OATTNSTRR', 'SNEEUWMAN', 'WEKRRNAED'}
>>> oplossingen(('DAMESROMANS', 'BEGINSCHERM', 'ONTSPANNEND', 'ERONDERDOOR', 'FAMILIEGRAF'), wijzerzin=False)
{'BAMNPSOGONM', 'DAOSNREDERS', 'ENGELENHAAR', 'FRTISIRNENF', 'OEMIDACMROD'}

Bronnen

Epiloog

Een zeshoekige puzzel met een extra tip.

puzzel
Een zeshoekige puzzel met een extra tip.