Junior

The assignment was to make a crossword puzzle game. I made Clue, Square, FileUtils, Crossword, and Main classes. The Clue class stores the starting x position of a clue, starting y position of a clue, orientation of clue, the clue number, clue answer, and clue text. The Square class stores the value, x position, y position. I have getters for all fields in the Clue class and Square class. Inside the Square class, I have a setter for the value field. FileUtils has one public function: interpretData(String fileName). Crossword has 4 public functions: generateCrosswordPuzzle(), addWord(), eraseAnswer), and isCluesEmpty(). Crossword also has 7 private functions: getClueStartNum(), isClueNumSpot(), isWordEmpty(), findIntersections(), fillBlackSquares(), putWordOnPuzzle(), and printPuzzle(). Main has 8 private functions: displayMenu(), displayAllClues(), displaySpecificClue(), answerClue(), eraseAnswer(), submitPuzzle(), exit(), and checkWord(). I used math to figure out how long to loop for where needed in functions and where to place the value in the 2D array of the puzzle.

I learned how to make classes, objects, 2D arrays, and understand the difference between private and public functions. I evaluated myself to be a 3 on the Self-Assessment scale because I was very challenged when making the crossword puzzle game. If I had mastered the assignment, then I would have made no mistakes and it would not have taken as long as I had taken to complete the project. I knew the concepts on how to make the crossword puzzle game, but it is sometimes more difficult to put it in code than think about how it works.

A lot of things went wrong during the project. My Crossword.putWordOnPuzzle() function did not work for a long time because it would not place the words on the puzzle properly. In order to fix it, I had to redesign the function. In Crossword.eraseWord(), I came across numerous bugs with it not erasing properly. When I erased a word, it took out other parts of other words in the puzzle. In order to fix it, I had to make a helper function called isWordEmpty() and isCluesEmpty() in order to solve this issue. That is just a few of the issues that went wrong. If I could have done the project differently, I would have validations for userInput to make sure they enter a number or word in the proper field. My favorite part was making the Main class because it was pretty simple to make after having the Crossword class handle changes in the puzzle. I loved doing this project because I was challenged when I needed to be and it taught me to be patient when debugging the code, even if it takes hours just to find a bug.