A two-player real-time puzzle game

By: on May 31, 2006

ScreenshotSeven years ago, I wrote a two-player puzzle game in Python. I recently dug it up again and Matthias persuaded me to make a first release available here.

Both players sit at the same keyboard.


The object of the game is to take over all the other player’s

The board is made up of a grid of movable “tiles”. Each tile on the board is one of three colours: red for the red player, blue for the blue. One player moves using the arrow keys, the other using W, A, S, and D. When a player moves, they swap places with a tile; thus by moving about the board they move the tiles around, as in Sam Loyd’s “15 puzzle”.

Certain tiles are “generators”. The neutral-coloured generators do nothing. The red and blue generators periodically produce “pulses” of their own colour. These pulses travel along the pipelines on the board. When they hit a neutral-coloured tile or a tile of their own colour, they set the tile to their own colour and carry on; when they hit a tile of another colour they stop. If they hit a blank tile, a generator, or a player, they always stop. When a pulse stops, the generator that produced it makes another pulse (unless it’s turned neutral in the meantime).

Certain tiles slow players down. If a player moves through a tile of another colour, or a tile containing a pulse, they will be frozen in place for a second before they can make another move. Players cannot move through each other.

If a player has no generators of their colour and no pulses of their colour on the board, then no tiles can ever be changed to their colour again and they lose.

Certain tiles are placed deterministically; the rest are random but symmetrical. Press “r” a few times to restart the game and see what sort of board positions are possible.

“p” pauses the game. “q” quits.


Thus far I’m the only person who’s ever really learned to play this, so I don’t really know how to play it well, but a few things are worth pointing out. But racing to turn as many generators as possible your colour at the start of the game will fill the board with tiles of your colour, and thus slow your opponent down; you can then work on trying to turn their generators to your side. Play with it on your own for a bit before trying against an opponent.


I don’t know if I’ll ever work on this again. If I do, the two obvious improvements to make would be a port to SDL, and network play.


Comments are closed