I’ve mentioned it before, but the “advanced programming” module I took in my first year at the University of Southampton was one of my favourites.

The task for the second coursework in this module was to create a Java application that could be used to interactively complete a crossword, similar to the Guardian’s web-based crossword application.

Crossworder was my submission for this coursework.

Crossworder in action.

As is my wont, I got a bit excited whilst implementing the coursework guidelines and added a bunch of extra features, including:

  • Keyboard navigation around the crossword using the arrow keys
  • Clicking on a clue in one of the lists highlights the matching row/column in the crossword, and moves the cursor to the starting letter
  • Loading and saving of crosswords from/to XML files, using a custom-designed schema (also saving any progress made in the puzzle as well)
  • Dynamic resizing of the crossword grid, depending on the size of the loaded puzzle and the size of the window
  • Displaying a log of details such as when and who completed a clue, as well as whether any solutions are correct or not — which I creatively dubbed “solved clue support”

You can download Crossworder as a JAR executable here.

Unfortunately having an interface with which to create a crossword puzzle wasn’t in the coursework specification, so you’ll just have to make do with the two bundled example crossword puzzles. Oops.