Sokoban
News:
13/9/2004:
- to compile under plan9port make sure you change the key-down keycode to 0x80 instead of 63488 in key2move(). thanks to Serge Gagnon for the tip.
- now with better, sharper graphics. screenshot below reflects that fact.
- wrote a parser for the http://www.sourcecode.se/sokoban level files. Now there are two levels added by default -- an easy one and a hard one. Change via third mouse button.
- added resize, as suggested by Russ Cox. it now resizes to show only the current level, taking much less screen space.
- changed the screenshot to reflect the above change.
- now you can give a (plain text) level file as an argument and play that...
Intro:
I was convinced by others that sokoban is needed for Plan 9. It didn't take long -- 4 hours to modify the maze code and to convert a set of 120 levels.
Download:
Screenshot:
Description:
You are guiding Glenda, the Plan 9 Bunny, through a room full of walls, pebbles and holes to put the pebbles in. Your goal is to arrange all pebbles into holes by pushing them around, but you can only push a pebble if there is no wall or another pebble stopping it.
There are two sets of levels with varying degree of difficulty and more than 200 distinct "rooms". http://www.sourcecode.se/sokoban has many more levels. Give a file name as an argument and change the level set completely.
Controls:
Arrow keys move Glenda up-down-left-right. 'N' and 'P' switch between the next and previous levels, 'R' restarts the current level. Del and 'q' quit.
Glenda also responds to mouse clicks in the squares next to her (originally done by Takashi).
The right mouse button invokes a menu where you can choose to restart a level after you've reached a dead-end or load different level sets.
The middle mouse button lets you change between levels.
BUGS:
The game does not install itself anywhere -- play from the current directory (I can put the images and levels in /sys/games/lib/sokoban sometime in the future, if people turn out to like it).
Last Modified: September 06, 2004
mirtchovski at gmail