Introduction

In Sokoban, the aim is to push moveable objects, or "stones", onto goal squares. To do this, you control a robot that can push a stone, but not pull it or climb over it, and can only push one at a time. This takes place in a limited maze-like area surrounded by walls, so it's easy to get stuck. (In the original Japanese version, the stones were crates, and the robot was a warehouse keeper, or "sokoban".)

[A screen shot of CPSokoban]

Above is a screen shot of CPSokoban. The stones are pool balls, the goal squares are the darker green sunken areas, and the robot is the cross-shaped doohickey. The status bar at the bottom tells you that the robot has made 21 moves, of which 5 involved pushing a stone, and that there are 3 stones not yet on goal squares ("unsaved").

Many different layouts, or levels, have been created. CPSokoban comes with seven sets of levels, none of them created by me. One set of 90 levels is taken from the XSokoban implementation. The others, of 50 levels each, were created by David W. Skinner. In the picture above, the level comes from his "Sasquatch" set, as you can tell from the title bar.