Thomas Haslam

Solitaire

10th May 2026 - Present

Part of the NoNotParty Arcade project.

Collection of daily perfect information solitaire games, inspired by playing manual solitaire while waiting for a flight in Fiji.

In implementation order, these are:

FreeCell

Initially underestimated the complexity of coding this since "it's only moving one card at a time". This was complicated by adding QOL features such as:

  • Cards automatically moving to the victory stacks when they're not useful anymore
  • Ability to move stacked cards as a group, while showing the intermediate moves so the user understands what's going on
  • Undoing moves, which sometimes needs to revert multiple moves at once if automatic or group moves occurred

Eight Off

Effectively FreeCell with more free cells and different stacking rules. Since card stacks had a common interface, it was easy to abstract out a common engine for FreeCell-like games.

Shenzhen Solitaire

Created a separate engine for this, as it has a completely different deck and two new types of move:

  • Stack moves without having to use the free cells
  • Merging in exposed royal cards to a single free cell

Penguin

Major gameplay change from the official rules was modifying the setup so that the victory stacks are Ace to King rather than offset depending on the deal, as I didn't think that added anything to the experience.

Did a big refactor at this point, since I would have had to create a third game engine with mostly FreeCell logic but the stack moves from Shenzhen Solitaire. Solitaire games now use a common engine, with parameters for:

  • What stack types are present (and what cards are in them initially)
  • What types of move are available
  • How the score is calculated from the current state

Simple (and Simpler) Simon

Very easy to code with the new common engine, only requiring:

  • New type of stack (as Spider stacks allow different suits to be stacked, but have a stack depth of only the same-suit cards)
  • New special "Spider Victory" move that automatically removes fully stacked suits