Reverse Wordracer
display a randomly connected network
have the user type in letters for every point in the network
one letter per point
trace the network to see how many words can be made from it, from a large dictionary file
give a score
go on to the next network
lines in the network cannot cross.
both directions is implied.
one node cannot be used twice in the same word.
for each letter in the network:
for each adjacent letter:
look in arrays[ord(letter)][ord(adjacent_letter) to see if it's True. for examlpe, if arrays[ord('h')][ord('e')][ord('l')][ord('l')][ord('o')] is true then 'hello' is a word.
create a generator that yields all possible paths from a starting point.
but it actulaly yields generators which yields further generators, etc.
that way we can skip branches when array[ord(currentletter)] is all empty.