stormyseas
is a Python package for solving challenges for the puzzle game Stormy Seas (also known as Wave Breaker). It currently requires Python 3.7 or later.
Stormy Seas is a puzzle game released in 1997 by Binary Arts. Binary Arts was later renamed to ThinkFun and the game was re-released as Wave Breaker. The game follows similar mechanics to its more famous precursor, Rush Hour.
Stormy Seas is played by sliding boats and waves around the game board to get the red boat into port (a special space at the bottom of the board).
The game is started by selecting a challenge card and arranging the game pieces as stated on the card. The pieces are then moved around the board by sliding them in various directions. Pieces will block each other so careful planning is required to create a path for the red boat to reach the port.
A PDF of instructions for the re-released Wave Breaker can be found here.
View the files in the examples directory to see examples of how to specify puzzle input and use the Puzzle
class to solve a problem.
Below are a few cards from the actual game to help visualize puzzle input.
The Puzzle
class can be initialized with an input string of the puzzle state. Here is one example.
--#-#X###
#-###x#--
--#H##-##
#-#H###--
#-#H###--
#-###-#--
##-##-#--
--###-###
Note the following formatting rules:
- Waves are represented as rows of characters with dashes
-
for gaps and hashes#
for blocks - Waves are separated by a single new line
\n
- Boats are represented by uppercase alphabetical characters
A-Z
and replace gaps-
in the waves they occupy- The red boat, for which the puzzle is being solved, must specifically use the uppercase character
X
for the rear and the lowercase characterx
for the front of the ship.
- The red boat, for which the puzzle is being solved, must specifically use the uppercase character
- Test
Rotation.transform
- Attempt to find the shortest solution in steps (merged moves)
- Add animation for puzzle solution
- Add GUI for navigating solution
- GUI for entire puzzle