What word is missing at the center of the rightmost triangle?

puzzle
Sample solution of a triangular puzzle.
puzzle
Assignment of a triangular puzzle.

The word we were looking for is FIREPLACE.

puzzle
Solution of the leftmost triangular puzzle.
puzzle
Solution of the rightmost triangular puzzle.

In each triangle, all words at the vertices are the same length. The word at the center of the triangle is the same length as the words at the vertices. It is found by starting at a vertex (the vertex at the top of the triangle with a wider border in both cases), traversing the vertices in a certain direction (clockwise in both cases) and always taking the letter at the next position in each consecutive word (the first letter of the first word, the second letter of the second word, and so on). We have marked the letters that spell the center word in red.

However, the puzzles are not only restricted to triangles: polygons with more than three vertices are possible as well. Moreover, we do not necessarily have to start at the top vertex. For example, if we start at the bottom vertex of the square below and run clockwise through the vertices, we get the word CHRISTMAS. We may also have to run counterclockwise through the words at the vertices. For example, if we start at the bottom right vertex of the pentagon below and run counterclockwise through the vertices, the word SANTACLAUS is spelled.

puzzle
Solution of a square puzzle.
puzzle
Solution of a pentagonal puzzle.

Assignment

A polygon is a puzzle in which a sequence of $$m$$-letter words are placed at the $$n$$ vertices of a polygon. The puzzle is represented as a sequence (list or tuple)

A candidate solution of a puzzle is an $$m$$-letter word (str) that is found by starting at a vertex, traversing the vertices in a certain direction (clockwise or counterclockwise) and always taking the letter at the next position in each consecutive word. Your task:

Example

>>> ispolygon(['DISEASES', 'RENUMBER', 'SOCIABLE'])
True
>>> ispolygon('FREELOADS, TIMEPIECE, NORMALIZE')
False
>>> ispolygon({'CONSULTANT', 'CAPITALIZE', 'KETTLEDRUM', 'SUBSECTION', 'LOOKALIKES'})
False
>>> ispolygon(('JAWBREAKERS', 2.833, 'CONSEQUENCE', 'FRIGHTFULLY', 'UNWILLINGLY'))
False

>>> solution(['DISEASES', 'RENUMBER', 'SOCIABLE'])
'DECEMBER'
>>> solution(('FREELOADS', 'TIMEPIECE', 'NORMALIZE'))
'FIREPLACE'
>>> solution(['PERFORMER', 'ANTIVIRAL', 'CROSSBOWS', 'PHENOTYPE'], start=2)
'CHRISTMAS'
>>> solution(('KETTLEDRUM', 'CONSULTANT', 'CAPITALIZE', 'SUBSECTION', 'LOOKALIKES'), clockwise=False, start=3)
'SANTACLAUS'

>>> solutions(['DISEASES', 'RENUMBER', 'SOCIABLE'])
{'DECEMBER', 'DONEABEE', 'RICUABES', 'ROSUASEE', 'SESIMSLR', 'SINIABLS'}
>>> solutions(['FREELOADS', 'TIMEPIECE', 'NORMALIZE'], clockwise=True)
{'FIREPLACE', 'NRMMLIIDE', 'TOEEAOEZS'}
>>> solutions(['PERFORMER', 'ANTIVIRAL', 'CROSSBOWS', 'PHENOTYPE'], clockwise=True)
{'AREFVBYEL', 'CHRISTMAS', 'PETSORRWE', 'PNONOIOPR'}
>>> solutions(['KETTLEDRUM', 'CONSULTANT', 'CAPITALIZE', 'SUBSECTION', 'LOOKALIKES'], clockwise=False)
{'CEOSTLDKOE', 'COTKEATREN', 'KOBIUEIIZT', 'LUPSLLTINM', 'SANTACLAUS'}

Resources

Epilogue

A hexagonal puzzle with an extra tip.

puzzle
A hexagonal puzzle with an extra tip.