Hex Word Search Generator Algorithm
Represent the Hex as Graph;


each node has additional property; has_letter; $T,F$
add the first randomly


choose starting point on the graph, probably randomly
place the letters by DFS or BFS,
add the letter into a list $l$.

adding another word with one connection, from start


from the list find the first letter of the new string that in the middle of another.
place the remaining words by DFS or BFS in nodes with $F$ flag.

adding another word with one connection, not necessary from the beginning.


from the list find the letters of the new string.
One part may be on the upper; as corner and almond. if the connection is $o$, alm on the upper,  
One part may be on the lower, and nd from the previous example.
place the upper part with DFS or BFS in nodes with $F$ flag.
place the lower part with DFS or BFS in nodes with $F$ flag.



Hope this helps;