GSoC 2023: Week 1 & 2 Report

Tanmay
2 min readJun 14, 2023

Project

Adding Acrostic support to GNOME Crosswords

Mentor

Jonathan Blandford

Week 1

The first thing I did was fix libipuz #22. Earlier across/down clues were hardcoded in the ipuz-cell. Due to this, we would do an if-else check on across/down clues based on their direction in other parts of the code.

A clue in an acrostic puzzle has a direction IPUZ_CLUE_DIRECTION_CLUES which was not getting handled. This would cause Crosswords to crash after performing an action on an Acrostic puzzle because of clues not getting copied.
Now we are storing the clues in a GArray.

- IPuzClue *across_clue;
- IPuzClue *down_clue;
+ GArray *clues;
Now clues are getting copied onto the PuzzleStack when we perform an action. Thus, we are able to undo the action.

Week 2

I started off week 2 by adding support for ipuz files with kind http://ipuz.org/acrostic and added a load test to load the files.

Next up was implementing a getter for the Quote clue. The acrostic file may or may not contain the quote clue. So the idea was to extract it if already present otherwise generate it by iterating over each cell of the main grid.

The quote clue is stored in “Zones:Quote” object and that needs to be displayed using a separate clue list with the direction IPUZ_CLUE_DIRECTION_ZONES and label Quote. This was done by splitting the string using “:” as delimiter.

Quote clue list getting displayed while loading Acrostic

This change would also help us in switching navigation based on the focus.
A test was also added to compare quote clues for the same puzzle with and without the quote clue in the file.

Related Merge Requests:

  • Add Grray to store clues !22
  • Add support for files with kind http://ipuz.org/acrostic !23
  • Extract label !24
  • Extract quote clue if present otherwise generate !25

That’s all for this week. Thanks for reading!

--

--