MY WEB PAGES :
Sokoban 1 - This Page
SEARCH ENGINE :
(倉庫番)™ is ©
HISTORY OF SOKOBAN :
Sokoban is a classic puzzle game invented in Japan.
Sokoban style of tiles are "square".
The original game was written by Hiroyuki Imabayashi. In 1980 it won a computer game contest.
Sokoban was written for Thinking Rabbit Inc. Japan. is a small softhouse in Takarazuka city,Japan by Hiroyuki Imabayashi who is president of the company Thinking Rabbit Inc. Japan.
THINKING RABBIT Address: 1-2-24-501, Nakasu City: Takarazuka City State: Hyougo Prefecture Country: Japan zip code: 665 tel: 0797-73-3113
Copyright © 1982-2006 Hiroyuki Imabayashi
Copyright © 1982 by Thinking Rabbit Inc. Japan. Commercial 50 levels are copyright Thinking Rabbit Inc., in Takarazuka town, Japan.
Copyright © 1989,1990,2001-2006 Falcon Co.,Ltd. all rights reserved. Sokoban is trademark or registered trademark of Falcon Co.,Ltd. in Japan and other countries.
This Paragraph get from Theodor Lauppert's Web page :
Soko-ban is the Japanese word for warehouse worker. It is written with three kanji, 倉 , which means warehouse, storehouse, cellar, treasury; 庫 , which means roughly the same; and 番 which surprisingly means
turnas in turn-based.
The hiragana equivalent (which I've found, so far, only on the title of Super Soko-ban) is そうこばん , so-u-ko-ba-n. Soukoban is thus often considered the correct transcription, but the name of the game was always spelled Soko-ban when written in romaji, as for example on the title screen of Soko-ban Perfect:
Sokoban Official Web page is in Japanies language.
Classic puzzles (historical and very famous) 1 through 50 levels were published by Hiroyuki Imabayashi. These tasks made the game more popular. If someone wants to start solving Sokoban there is nothing better for the beginning.
Joseph L. Traub collected another 40 levels for XSokoban.
Andrew Myers has registered on his web site world record of first 90 levels. These scores are continuously updated as xsokoban is played around the web. The levels are divided according to the minimum number of steps or minimum pushes of the box. (If you want to give about these 90 level's solution please visit his "manuel-solve" web page)
Real story of the so called "Original" levels. In 1982 the company Spectrum Holobyte has published a sokoban game for different consoles, different OS, like Apple II E, DOS, Amiga 64.... with permission of the company "Thinking rabbit". This game had included 50 levels, later called as the "Original" levels. This was in 1982. Later, in the early 90th, some guys had copied these 50 levels for a Unix game, which was called XSokoban. (They had added 40 other ones, later called as "Extra" set. But they had copied 8 of these levels with some errors, or they have changed some of them, because they perhaps thought, that some level in the original form are not really or only very hardly solveable. Perhaps it was really to hard to copy the levels per hand exactly. They had changed some levels for their game, they had demolished the "Originals"! But many players and programmers don't know anything about this history, so these corrupted levels were included in too many new games. The faked new levelset was often called as the "Original" set, but this is not the truth! They called only the corrupted "XSokoban"-levels as "Originals". At Sokobano's webpage, you can find the real original levels, by calling the "Original" set, but he has added 6 of the changed XSokoban levels at the end of the table. The two others are only changed from the original by only one step of the man... So Sokobano don't habe added these two ones especially. So you can compare your version of your levels with the changed XSokoban levels, these will be level 12, 20, 25, 37, 42 and 50. For level 42 there is existing an extra story, but not at this place, today. The "=" in his tables will show, that best moves and pushes results are the same! Best regards! Sokobano P.S. Uncle Chucks has made a mix from some sets at his site. This is not a unique set! --- (this paragraph getting from Sokobano's Yahoo Sokoban Group mail)
Two major sokoban versions were released in Japan only: "sokoban perfect" (Thinking Rabbit 1989) with 306 levels, and "sokoban revenge" (Thinking Rabbit 1991) with another 306 levels. Some of these levels appear in the "IQ Carrier" and "Boxxle" collections, but the rest are still available only in Japan. In fact, these two versions are still being sold commercially in Japan by Powerhouse
Not long after the Spectrum Holobyte version appeared, someone wrote versions of Sokoban for MS-DOS and Unix machines. Then Joseph L. Traub collected another 35 levels and included them with XSokoban, his version for Xwindows. These levels, along with a few more from the current XSokoban distribution, form Xsokoban's "Extra" collection.
In 1993, Phil Shapiro made the levels in "Simple Sokoban" for those who found the original levels too difficult. He included the article "Educational Value of Sokoban," which describes his motivations and why you should be happy if your child spends all his time playing Sokoban.
"Dimitri & Yorick" levels were made by Jacques Duthen, who also made the Sokoban font. The collection is named after his children. He suggests that the levels are best for kids ages 4-8.
"Still More!" consists of levels by J. Franklin Mentzer.
Radio Shack made a game called "IQ Carrier," which is a handheld sokoban game with 28 levels. A fan of both games sent me the levels from IQ Carrier and recommended the game for those who would like a nice portable version of sokoban. Those levels were first included in version 2.0.
"Boxxle" is a game for the Nintendo Gameboy. The Gameboy version has two volumes containing about 230 levels. However, all but the 165 I've included are duplicates of original levels or IQ Carrier levels. Many thanks are due to John Polhemus for typing in all 230 levels and finding almost all of the duplicated levels.
(this paragraph getting from Scott Lindhurst's web page at Last modified: Thu, Nov 12, 1998)
This game was awarded the 1st price in computer games at that time because of its simplicity and smartness.
There are not so many games, which were invented so many years ago and are played even nowadays.
The original information is using the one which was in the book (ISBN4-88239-606-8) which is called "THE SOKOBAN" which was published by 1987/01/01.
The Sokoban puzzle is one of the remaining one-person games in which the human solution quality still outperforms all attempts to automatic solving strategies coded in a computer program. In Sokoban n balls are placed somewhere in a maze containing n goal fields which they must eventually reach. The player controls a man which can traverse the board and push the balls onto adjacent empty squares. Three problems can be distinguished: Decide, Pushes and Moves. Decide is just the task to solve the puzzle. Pushes additionally asks to minimize the number of ball pushes whereas Moves request an optimal number of man movements. (this paragraph getting from Stefan Edelkamp's web page at 20-04-1997)
Sokoban means "Warehouse Keeper" or "Warehouse Man" in Japanese.
The object of the game is to push boxes into their correct position in a crowded warehouse with a minimal number of pushes and moves.
The boxes are so heavy that you can only push one of them at a time.
It may sound simple, but it is easier said than done, some of levels are not so simple as you think ! but the levels range from very easy to extremely difficult, some takes hours and even days to figure out.
Some mazes are incredibly hard while others show aesthetic qualities.
The simplicity and elegance of the rules have made Sokoban one of the most popular logic games.
Over the years many versions for all platforms have been made and new levels are created all the time.
First versions in Europe were published by Spectrum Holobyte for Apple IIE.
Later appeared different versions of sokoban for MSX, NES, C64, Amiga, Spectrum, PC, Macintosh, CE and others.
1982/12 Sokonan ( Tape )
1984/05 Sokoban for MSX ( ROM ). It sells from ASCII.
1984/12 Sokoban Tool Kit ( Tape ). It sells from ASCII.
A new function is added by this tool kit.The functions such as the only way withdrawal, the reappearance function, the round selection by the surface, the high-speed mode saving function which become the origin of the NES edition are announced.
1984/12 Game Pokekon ( Pocket Computer ). It sells from EPOC
1985/04 Sokoban for caset ( Game Pokekon ( Pocket Computer ) )
In the handicap liquid crystal game, the warehouse turn becomes made out of the room.Incidentally, it has the edit function, the only way withdrawal function.
1985/12 Sega Mycade ( SEGA mk3? )
1986/07 "Namidano Sokoban Specia" for NES ( DISK ) .It sells from ASCII.
1988 Soko-ban for ZX Spectrum 48K ZX-Soft Brazil Ltda from Brazil
19??/?? for The electronic pocket diary : for genesis : for gamegear : ...etc
1989 "Sokoban Perfect". All 306 stages
1991 "Sokoban Revenge". All 306 stages
1995/08 Sokoban for Windows.
199?/?? Sokoban for "Bungo". "Bungo" is NEC's product.
1996/09/13 "Ultimate Sokoban" for PlayStation. All 96 stages
1996/10 "Sokoban Revenge" for Windows.
1997/01 Sokoban for Minigame ( It like Tamagocchi )
1997/09/16? "Sokoban Basic" for PlayStation. All 280 stages
I think "Unlimited" :D
THIS PARAGRAPH FROM FALCON COMPANY :
(Japaniese to English online translated by www.worldlingo.com, if there is an unknown character, yes i can't see them too)
Writer around 1960
The fact that "warehouse turn" is born was the spring when the petal of the cherry tree 1981 whirls.
Though, because the fact that it increased many application similar and birth cry it was the dawn, whether or not really the petal whirled, is not the limit of guarantee, but.
In any case I where the movement of the character that from the time before had become matter of concern you push the baggage, did, to unite as the puzzle being with simple Basic language.
As a conception, being to do to that to apply, the baggage which it should tidy up disturbs tidying up and it does.
Extremely zCzC and you completed the program, but you suffered hardship in compilation of the surface which should become problem.
Because at that time, I myself did not become aware in profundity of "warehouse turn", is.
Eventually, I who make several aspects complete enjoyed, inviting the acquaintance and the friend to the house, making try.
Well is not, unless like this is, while looking at the form where the friend and the acquaintance are troubled, being to have chuckled, it does.
The whirling of the fallen leaves it is story of the fall when it scatters.
Actually whether or not the fallen leaves whirled and scattered as for me of that time there was no absurd feeling that e.g., it probably will sell that, as another.
That from contingent thing, at that time, just began operation being it comes to the point of stopping in the eye of the business man of the software circulation company, it does. The powder snow did not whirl..., but it was the winter.
At the business man who looked "warehouse turn" speaks a word.
Because it can sell, make, that.
The instant, I who soar in the vision which the bill whirls buy the dubbing machine and, promptly, being to begin the preparation of the product making, it did.
And 1982, the company was made and "warehouse turn" was sold.
In order also for everyone to know, the license including after that over 20 years, it was possible to transplant "warehouse turn" to many hardware.
Huh? The bill whirled applying?
So far, various ones whirled, but regrettable as for just that....
With such a 2003, 20 years it came such a and obtained everyone "of the warehouse turn" fan and the cooperation of the t@R corporation j [A had decided to do "warehouse turn".
It has levelled up also the new work aspect which was continued to make.
By all means, please expect.
* "Warehouse turn" and "sokoban" are registered trade mark of the t@R corporation.
* "Warehouse turn" is the book which now the Hayasi Hiroshi line person creates, all rights are reserved.
SOKOBAN RULES :
Pictures from Falcon Co.,Ltd. Sokoban rules web page.
The Sokoban symbol can only be moved across fields that are not occupied by boxes.
Boxes can be pushed as long as the square following the box is not occupied by a wall or another box.
Boxes can only be pushed but not pulled.
And Box World game author Jeng-Long Jiang's picture description is very simple too (Getting from his game help) :
SOKOBAN'S IMPOSSIBLE MOVES :
Pictures and explains from Faris Serdar TASEL's SPS solver "info" web page. And Matthias MEGER's explains' pictures made by me with Paul VOYER's "Solveur.html" program.
Blocked Moves :
They are non-movable block moves. Some examples of blocked moves :
This is a famous blocked move. Two blocks, block each other and wall blocks from 1 side. Nothing to do.
The block is blocked from 2 sides by walls.
All of the objects block each other. If we could remove one of them, This wouldn't be a blocked move.
There is no blocking wall, but 4 blocks, block each other.
Trapped Moves :
They are movable block moves but it leads no solution anyway. For not to ignore a trapped move, Trapped block must have a target zone on its way. Some examples of trapped moves :
Here, the block beside the wall is trapped. Wherever it is pushed, It can't be pushed onto targets.
The bridge, beside blocks is fallen. Sokoban cannot get in bridge to push the block to targets. So blocks are in trap.
In this position, blocks cannot be pushed onto targets. They are in trap.
Block is in 'out of nowhere' position. It's in big trap.
Stones are blocked by other stones or walls. (From Matthias MEGER's "Freeze Deadlock" explains from his yahoo sokoban group email)
This type of deadlocks is named "corral deaadlock" because the last push created a "room" the player can't enter. This oom is investigated for being a deadlock. One can think of this room as being an own little level. All boxes not being positioned in this room or near this room are ignored. (From Matthias MEGER's explains from yahoo sokoban group email)
I call this type of deadlocks "bipartite" because of the algorithm being used to find these deadlocks. Every box must be assigned to it's own goal. If this is not possible the position is a deadlock. (From Matthias MEGER's "Bipartite deadlocks" explains from his yahoo sokoban group email)
This type of deadlock is a mix of freeze and bipartite deadlocks. A blocked box reduces the maneuverability of other boxes so a bipartite deadlock occurs. (From Matthias MEGER's "Deadlocks due to blocked boxes" explains from his yahoo sokoban group email)
SOKOBAN MAP - XSB & RLE (Run-Length-Encoding) FORMAT'S SUMMARY :
Sokoban levels are usually kept in .xsb (and .sok .rdf .lp0 .dat .pak .txt formats) file.
Although sometimes more than one level are combined in a single file.
This format is a simple text file that can be created in any text editor (such as Notepad).
XSB File Format from pocket-sokoban.com
XSB Level Format from PPcSokoban
# (hash) Wall
. (period) Empty goal
@ (at) Man (pusher) on floor
+ (plus) Man (pusher) on goal
$ (dollar) Box on floor
* (asterisk) Box on goal
Thanks to Yoshio MURASE (look to his homepage from Japan) for allowing the use of his pictures for the diagrams.
(You can also find this pictures for diagrams at Takaken's web page and Alfred PFEIFFER's web page for their levels.)
Example for erim01.xsb :
And perhaps I must add (because of this level was not include) "man on target" and "box on target"
You can see the xsb character if you stop on any picture character. (Include empty area also)
Note : I find at Sven Egevad 's web page more easy to use map works with Java Script, if you want to share your levels at a HTML page with pictures near text (xsb or any explains) maybe you choose this way. (but in this way a little problem for; if you want to copy and paste xsb characters -not pictures- you have the level's xsb in only 1 line (like your explain in HTML code page) and maybe you can't use it anywhere else -at analyser programs or any solver-)
The levels XSB with RLE, is more compact, and efficient in mobile devices (as Palm, PocketPC, Smart Phones), besides being smaller to send for SMS.
Format XSB and LURD for SMS :
Juan Carlos's explains i think like a summary (from his mail to me)
A defined format exists to send levels for sms. There is not anything official, but some ideas can be given, of what these SMS should have :
1. All level and solution should be compressed, with RLE.
2. Optionally you can use the character "|" to mark the beginning and the end of each level.
Example (Aymeric du Peloux's Microcosmos Level 31) :
[ --#####| ###---#| #--*#-##| #-#--*-#| #-*--#-#| ##-#+--#| -#---$##| -###--#| ---####| ]Level SMS:
Today, SMS provides, gives an it limits basic of 100 characters for SMS, some more. And perfectly there is space for a level, of medium size.
Let us wait that in a future, some sokoban programs of mobile phones give support for : to import and export xsb-sms.
LOGIC FOR MAPS XSB-RLE IN MULTIPLE LINES - Yahoo Sokoban Group notes' summary :
If, the maps with names with the character "#", they mean a problem. ... But this has a solution. In general, all XSB-RLE has 3 parts: 1) the name of the...
"Same length text-lines" doesn't work for identifying run-length encoded boards spanning multiple lines. First and foremost, it doesn't guarantee correct...
Maps XSB-RLE in multiple l, is an idea that can be used by the users, in general for an elegant representation.To be published in a principle for HTML...
... Unfortunately, there is nothing elegant about it as long as it isn't formally defined in a way that can be implemented reasonably easy and efficient by a...
I agree with Brian, even more: I would suggest that every line should end with "|", except the last one. regards YGP ... and ... idea ... files. ... length ......
Is the following map valid? 17#|#@2-#3-#3-#3 -#|#-#-#-#-#-#-# -#-3#|#2-$.$.$.$ .$.$.$.-#|3#.$.$ .$.$.$.$.$-#|2-# $.$.$.$.$.$.$.-# ... -#-#|2-#3-#3-#3- ...
... That is a wonderful idea! It avoids all the problems a program would have if it had to analyse several lines before a text-line can be categorized as being...
... Building on top of this idea leads to the elimination of the trailing "|" in each line. The line of thought goes like this: If each line must end with a...
... As a Sokoban game and parser impementer, I also prefer this idea. It is both simple for the parser and for the person hand-coding a puzzle since it removes...
... I'm glad you like the idea, Eric! ... Actually, the sketch for a formal definition I presented wasn't ambious about that, and I had carefully taken this...
Idea is good and this gives us a possibillity to have a mixture of non RLE encoded lines and RLE encoded lines. There is only one problem: #23 before the...
Because not to make the things simplest, using one double vertical bar, e.g: "||", in the beginning from each map XSB-RLE, obtains a clean identifier for the...
... It's correct that lines ending with digits aren't a part of a board, but it is worth mentioning that this is not a "problem" in the sense that it is...
Finally, with the new rules for XSB-RLE. The "pretty-print"(lines with the same number of characters per line) is allowed? #24 17#|#@2-#3-#3-#3-#|#-#-#-#-#-#-#...
... This probably is something which should be mentioned explicitly in the file specification. Although, to some, it may seem obvious that line-ending digits...
... I highly appreciate that you tried to come up with a good formal description! Maybe we can use it as basis for further refinements, because as it stands,...
... To me it reads unambiguously. The fact that we are having difficulty stating this in a way acceptable to "everyone" in a line or two seems to indicate that...
... To me it seems to read ambiguously because it doesn't state what happens if the row actually does end with a "|"; it states only what ... The revised...
... It may be getting closer, but it's not quite there. Especially, "or a combination of the two" doesn't work because it invites to combining them in the...
... The parenthesized comment indicates the correct order. However, it could be simplified by removing the "combination of two". ... Next iteration: :-) *...
... That's a perfectly correct definition; bravo and thanks! It's brief and easy to understand. I don't mind using that definition, but at the moment I'm...
SOKOBAN MAP - .SOK FORMAT'S SUMMARY :
This pharagraph (below) is getting from YASC author Brian Damgaard's "YASC .sok format" explains at Yahoo Sokoban mail group (at 27.July.2010)
From early on, there were multiple-level-files with titles before the board, so later it has not been an option not to support it.
It may not be entirely trivial, but it's not too difficult to implement. The advantage of the free formatted .sok file format far outweighs the small additional burden it places on the programmer.
It only requires a few extra code lines and can easily be implemented with a normal and efficient one-pass parser. The only special thing the program must do is to take into account that:
* At the time the parser reads level notes, it's not known whether 1) the last text line belongs to the notes for the current level, or 2) it's the title line for the next level.
* Resolving that question can first take place when the parser sees the next level (its board).
* At that point, a non-fool-proof-but-in-practice-more-than-good-enough separation can be made. If the last text line in the notes from the preceding level is a single line (not part of a multi-line paragraph) then it's a title.
Some refinements can be implemented. For instance, in YASC, the line isn't considered a title if the line contains ":" because it typically signals a key-value pair. Again, it's not fool-proof, but in practice it's perfectly all right. There won't be more than, say, 1 in 50,000 true levels. where this logic fails.
The easiest way to describe a .sok file parser is with pseudo-code, concentrating on file-header, boards, titles, and notes, but omitting snapshots:
..set state to fileHeader
..while more lines do
.....case state of
.......fileHeader......if...next line is a board-line then
............................change state to newLevel
............................check whether the file-header
............................contain a title for the first level
.......................else add next line to file-header
.......................(break, for C-programmers)
.......newLevel........create new level
.......................set level-title to the stored title, if any
.........................add next line to board-lines and advance
.......................until eof or the next line isn't a board-line
.......................set state to levelNotes
.......................(break, for C-programmers)
.......levelNotes......if...next line is a board-line then
............................change state to newLevel
............................check whether the level-notes
............................contain a title for the next level
.......................else add next line to level-notes and advance
Adding snapshots/solutions to the parser is straightforward. It involves 2 more parser states, "NewSnapshot" and "SnapshotNotes", which work more or less like "newLevel" and "levelNotes".
This pharagraph (below) is getting from Sokosave author Eric Sunshine's ".sok format" explains at Yahoo Sokoban mail group (at 28.July.2010)
The relatively simple parsing needed to support the YASC .sok format, as described by Brian, should be sufficient to allow JoKoSoKo to deal with a large number of collections, even if those collections are not specifically formatted as .sok files. This works because .sok is largely a superset of the format of many collections.
If you would like to support other cases, such as when much or all of the meta-data appears before the puzzle, then you likely will need to implement a more complex heuristic for determining which non-puzzle data belongs to each puzzle. SokoSave Mobile takes this approach, trying very hard to intuit which information belongs with which puzzle, since many older collections are formatted in ways not compatible with the .sok format. To do this, SokoSave Mobile implements heuristics based directly on the SokoSplit utility (with a few small bug fixes): here
Here is a brief description of the heuristic. For each puzzle, perform the following steps in order:
1. If there is a blank line immediately before the puzzle, assign it to the puzzle.
2. Assign all following unassigned non-blank lines to the puzzle.
3. Assign all preceding unassigned non-blank lines to the puzzle. These lines precede the blank line (if present) assigned to the puzzle in step 1.
4. Assign all following unassigned lines (blank or not) to the puzzle.
5. Optional: Clean up by trimming leading and trailing blank lines from the collected meta-data. (Internal blank lines are retained.)
This heuristic works correctly with all of the old puzzle collections I have sitting around which were downloaded years ago, as well as with modern collections available for download. The heuristic also is a superset of the YASC .sok parsing, so it works properly with those collections, as well.
This pharagraph (below) is getting from Sokosave author Eric Sunshine's ".sok format" explains at Yahoo Sokoban mail group (at 28.July.2010)
A good explanation of the .sok file format can be found as the header of any .sok file created or updated by YASC. See below for a copy of the example SokDemo.sok file which Brian created to explain the format. The file was downloaded from: here
You can also download (only explain part) from here (from Yahoo Group mail)