![]() A template, basically a bit-mask representing the black and free squares, was chosen randomly from a pool that was provided by the client. It had a list of words (and associated clues) stored in a file sorted by descending usage to date (so that lesser-used words were at the top of the file). I actually wrote a crossword generation program about ten years ago (it was cryptic but the same rules would apply for normal crosswords). Bigger word lists also have a much higher chance at better word placement numbers. Bigger grids run exponentially slower bigger word lists linearly. It tends to run rather well, but let me know if you have any suggestions on improvement. This is time limited (find the best crossword in x seconds).īy the end, you have a decent crossword puzzle or word search puzzle, since they are about the same. If the next crossword has more words placed on the board, it replaces the crossword in the buffer. So, we buffer this crossword and go back to step #2. We should now have a crossword, but the quality can be hit or miss due to some of the random placements.Back to step #4 until word list is exhausted.Scores of 0 indicate either bad placement (adjacent to existing words) or that there were no word crosses. Loop over the suggested coordinate list and "score" the word placement based on how many other words it crosses.When a match is found, simply add that position to a suggested coordinate list for that word.Move onto next word, loop over each letter in the word and each cell in the grid looking for letter to letter matches. ![]()
0 Comments
Leave a Reply. |