Generating Crossword Puzzles
Author
Simeon Buttery
Title
Generating Crossword Puzzles
Description
This notebook creates randomly generated crosswords for the user to interact with.
Category
Essays, Posts & Presentations
Keywords
crossword, interactive, manipulate
URL
http://www.notebookarchive.org/2019-07-5jvjip8/
DOI
https://notebookarchive.org/2019-07-5jvjip8
Date Added
2019-07-12
Date Last Modified
2019-07-12
File Size
273.8 kilobytes
Supplements
Rights
Redistribution rights reserved



WOLFRAM SUMMER SCHOOL 2019
Generating Crossword Puzzles
Generating Crossword Puzzles
Simeon Buttery
Sylvia Haas
Starting Approaches
Starting Approaches
Final Result Preparation
Final Result Preparation
Final Result Manipulate
Final Result Manipulate
I finally made a manipulate wherein there is a column of the title, instructions, hints, extra hints, word bank, crossword, checker, answer key, and an ending text to read. This was done cleanly and with buttons to make a nice output for the user to traverse.
I finally made a manipulate wherein there is a column of the title, instructions, hints, extra hints, word bank, crossword, checker, answer key, and an ending text to read. This was done cleanly and with buttons to make a nice output for the user to traverse.
This input uses Column and lots of strings and variables in a manipulate to show the pre-text and the crossword, while also being able to show helpful hints by using previous variables and having buttons.
Out[]=
| |||||||||||||||||||||||||||||||||||||||||||||||||
|
Conclusion
Conclusion
Throughout the entire process of creating and accomplishing goals in this project, I have learned several things and figured out how to do many processes in an easier and more efficient way. I started with the small steps of merely trying to overlay words, but that didn’t work so well. After much thinking, I moved onto using grid. Once this was semi-functioning, I added black squares and white blank spaces into the format of the grid. With this working, I continued on and added spaces for words to get a set crossword pattern. After a couple days, I had the huge and amazing number of a whopping fifteen words in the crossword! I used word data to pick words based on the position of letters, for example if the first word is “Wolfram”, I would pick a word whose second letter is the sixth letter in the first word, one such word being “Language”. I then used several associations of these words to add them into the crossword by calling the number associated with each letter. I also added hints based on the first dictionary definitions of each word. Finally, I refactored my code so that I got rid of over sixty variables, which helped the loom and functionality of the project. Then, I cleaned up the manipulate and made everything look nice and organized in the output cell. In the near future, a incredibly hard, but possible, improvement could be randomizing the layout of each crossword every time the user evaluates the code. This would allow for a true random crossword generator, but sadly, due to the time restraint, I was not able to finish this goal. However, I feel that I have still accomplished the main goal of making a crossword generator, since I made a new interactive crossword that is difficult yet possible to solve. In creating and working on this project, I learnt to continue to try, even when it seems impossible, and also to set incredibly high goals. By using these two teachings, I was able to make the most of this experience and truly grow as a coder and a human being.
Throughout the entire process of creating and accomplishing goals in this project, I have learned several things and figured out how to do many processes in an easier and more efficient way. I started with the small steps of merely trying to overlay words, but that didn’t work so well. After much thinking, I moved onto using grid. Once this was semi-functioning, I added black squares and white blank spaces into the format of the grid. With this working, I continued on and added spaces for words to get a set crossword pattern. After a couple days, I had the huge and amazing number of a whopping fifteen words in the crossword! I used word data to pick words based on the position of letters, for example if the first word is “Wolfram”, I would pick a word whose second letter is the sixth letter in the first word, one such word being “Language”. I then used several associations of these words to add them into the crossword by calling the number associated with each letter. I also added hints based on the first dictionary definitions of each word. Finally, I refactored my code so that I got rid of over sixty variables, which helped the loom and functionality of the project. Then, I cleaned up the manipulate and made everything look nice and organized in the output cell. In the near future, a incredibly hard, but possible, improvement could be randomizing the layout of each crossword every time the user evaluates the code. This would allow for a true random crossword generator, but sadly, due to the time restraint, I was not able to finish this goal. However, I feel that I have still accomplished the main goal of making a crossword generator, since I made a new interactive crossword that is difficult yet possible to solve. In creating and working on this project, I learnt to continue to try, even when it seems impossible, and also to set incredibly high goals. By using these two teachings, I was able to make the most of this experience and truly grow as a coder and a human being.


Cite this as: Simeon Buttery, "Generating Crossword Puzzles" from the Notebook Archive (2019), https://notebookarchive.org/2019-07-5jvjip8

Download

