Sokoban

From Wikipedia, the free encyclopedia

Level 1 of the original PC version of Sokoban
Level 1 of the original PC version of Sokoban
KSokoban, an implementation of Sokoban for KDE.  In this version, the red rubies play the role of the boxes described in the text.
KSokoban, an implementation of Sokoban for KDE. In this version, the red rubies play the role of the boxes described in the text.

Sokoban (倉庫番 Sōkoban?, 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, and boxes cannot be pulled. The puzzle 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, mobile phones, graphic calculators, and Canon PowerShot digital cameras. 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.

Contents

[edit] 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. In a variant called Beanstalk, the elements of the level must be pushed onto the goal in a fixed sequence.

Additional game elements: Sokonex, Xsok, Cyberbox, Block-o-Mania all add new elements to the basic puzzle. Examples include holes, teleports, moving blocks and one-way passages.

[edit] 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] 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.

[edit] References

  1. ^ M. Fryers and M.T. Greene (1995). "Sokoban". Eureka (54). 
  2. ^ 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
  3. ^ 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.

[edit] See also

[edit] External links