Common Assessments

Java: Crossword Puzzle

My junior year Common Assessment assignment was to create a crossword puzzle from a “.txt” file that had prerequisites and was preformatted. The file consists of six parts, separated by a colon delimiter. It has an x-coordinate, a y-coordinate, a direction, a size, a correct answer, and a hint. The entire project had to be output into the console of our IDE, called IntelliJ. I created a separate class to handle the heavy lifting of displaying the feedback for the user. This also cleans up my “Main” class by abstracting it to another class. I have also created a class for each “Clue”, which is created per line in the “.txt” file, a “Crossword” class to handle all of the crossword logic, a “Square” class to hold each spot in the 2d array, which I used to store the Square objects of the crossword, and a “FileHandler” class to handle all of the file reading from the “.txt” file.

During this assignment, I had to organize and plan out my every move. I had to strategically place my classes, methods, and modularize every aspect so that the only piece of data that is explicitly defined is the input data from the file. I also used knowledge of Java programming, along with file handling, to be able to read safely from an external source and organize that data into a well-managed form in memory. At the time of doing this project, I would say I’m somewhere between a 3-4 in proficiency. I haven’t quite mastered these skills, but I would say I am completely comfortable with explaining what I am doing, why I’m doing it, and remembering safe file-handling practices.

I hit a roadblock with this project when I was trying to find a way not to remove letters of filled-in words. There were already so many different variables and checks for each Square instance that was used on the board. I fixed it by refactoring my Square class and storing data about the correct square, the current, and whether it has another connection as a boolean. This way, I can check and set whether the current is not the base character, I can switch the boolean so that when I reset a row, if that boolean is true, I can reset it to false and skip resetting the current. I think if I were to redo this assignment, I would organize everything a little bit differently. I do like my organization, but I wasn’t fully planning for future problems, which in it of itself became a problem. I really liked the idea of making a game with this assignment. I will say it was my favorite part. The biggest challenge I had was trying to organize and plan for the future of the assignment and how each part will interact eventually. I really did like this assignment overall, and it was a great challenge to push my understanding to its limit and exit my comfort zone to grow.