Sokoban
![](http://upload.wikimedia.org/wikipedia/commons/thumb/c/cb/KSokoban-screenshot.png/220px-KSokoban-screenshot.png)
Sokoban (倉庫番, Japanese for "warehouse keeper") is a transport puzzle in which the player pushes boxes around a maze, viewed from above, and tries to put them in designated locations. Only one box may be pushed at a time, not two, and boxes cannot be pulled. As the puzzle would be extremely difficult to create physically, it is usually implemented as a video game.
Sokoban was created in 1980 by Hiroyuki Imabayashi, and was published in 1982 by Thinking Rabbit, a software house based in Takarazuka, Japan. Thinking Rabbit also released three sequels: Boxxle, Sokoban Perfect and Sokoban Revenge.
Implementations of Sokoban have been written for numerous computer platforms, including almost all home computer and personal computer systems. Versions also exist for several hand held and video game consoles, including mobile phones. Many other puzzle games, such as Chip's Challenge and Rocks and Diamonds, implement Sokoban-based gameplay. The roguelike computer game NetHack contains a sequence of dungeon levels deliberately designed to simulate a Sokoban game.
Sokoban variants
Several puzzles can be considered variants of the original Sokoban game, in the sense that they all make use of a controllable character who pushes boxes around a maze.
Alternative Tilings: In the standard game, the mazes are laid out on a tiling of squares. Several variants apply the rules of Sokoban to mazes laid out on other tilings. Hexoban uses a tiling of regular hexagons and Trioban a tiling of equilateral triangles.
Multiple pushers: In the variants Multiban and Interlock the player can control multiple characters.
Alternative goals: Several variants adjust the requirements for completing a level. For example, in Block-o-Mania the boxes are different colours and the goal is to push them onto squares which match their colours. Sokomind Plus implements a similar idea, with boxes and target squares uniquely numbered. In Interlock and Sokolor, the boxes are also different colours, but the goal is to move them so that similarly coloured boxes are adjacent. In CyberBox, each level has a designated exit square, and the goal is to reach that exit.
Additional game elements: Sokonex, Xsok, Cyberbox and Block-o-Mania all add new elements to the basic puzzle. Examples include holes, teleports, moving blocks and one-way passages.
Scientific research on Sokoban
Sokoban can be studied using the theory of computational complexity. The problem of solving Sokoban puzzles has been proven to be NP-hard[1] as it is part of a more general class of motion planning problems where the porter is allowed to push and/or pull one or more boxes at a time. This is interesting also for artificial intelligence researchers, because solving Sokoban can be compared to designing a robot which moves boxes in a warehouse. Further work has shown that solving Sokoban is also PSPACE-complete[2].
Sokoban is difficult not only due to its branching factor (which is comparable to chess, but still much lower than that of go), but also its enormous search tree depth; some levels require more than 1000 "pushes". Skilled human players rely mostly on heuristics; they are usually able to quickly discard futile or redundant lines of play, and recognize patterns and subgoals, drastically cutting down on the amount of search.
Some Sokoban puzzles can be solved automatically by using a single-agent search algorithm, such as IDA*, enhanced by several techniques which make use of domain-specific knowledge[3]. This is the method used by Rolling Stone, a Sokoban solver developed by the University of Alberta GAMES Group. The more complex Sokoban levels are, however, out of reach even for the best automated solvers.
See also
References
- ^ Dorit Dor, Uri Zwick, SOKOBAN and other motion planning problems. Computational Geometry: Theory and Applications 13, 215-228 (1999).
- ^ Joseph C. Culberson, Sokoban is PSPACE-complete. Technical Report TR 97-02, Dept. of Computing Science, University of Alberta, 1997. Also: http://web.cs.ualberta.ca/~joe/Preprints/Sokoban
- ^ Andreas Junghanns, Jonathan Schaeffer, Sokoban: A Case-Study in the Application of Domain Knowledge in General Search Enhancements to Increase Efficiency in Single-Agent Search. Artificial Intelligence, special issue on search, 2000.
External links
- Official Sokoban site, in Japanese
- Yahoo! Sokoban discussion group
- The University of Alberta GAMES Group - academic research and the Rolling Stone solver
- Web pages containing Sokoban information:
- Sokoban Wiki A Wiki just about Sokoban
- [1] - game history, Sokoban level design
- SokoSave resources
- Sokoban project - games, levels, highscores
- 79 online Sokoban games
- Online Sokoban You can play Sokoban online.
Game Archive and Review sites
Ports, clones and remakes
- Online Sokoban You can play Sokoban online.
- Sokoban++ Windows freeware version with solver, skins, and editor.
- Sokoban Widget A Mac OS X Sokoban Dashboard widget.
- IceCubes Downloadable clone for Windows with modified game principle.
- Sloppy Sokoban Freeware Sokoban for Mac OS X.
- PostMan (for mobile phones, freeware)
- Push DX
- Sokoban in Delphi Open-source Sokoban game written in Delphi.
- SokoJS, online game written in Javascript under GPL.
- Warehouse Online Flash version. Also create your own Warehouse levels and challenge friends to solve them.
- Docker Sokoban Downloadable version of sokoban with rich graphics for Windows.
- Sokoban for Windows Shareware with many levels and skins and level editor.
- Sokoban YASC Windows open source version with solver, optimizer, skins, and editor.
- Olaf & Elmar in the Castles of Nabokos Sokoban with large and small blocks and two cartoon characters.
- Ksokoban KDE game included on most Linux distributions.