Crossoban – puzzle definitions

Crossoban supports puzzle definitions for Sokoban, Interlock and even a combination of Sokoban and Interlock elements in a single puzzle.

You can import puzzle definitions into Crossoban by clicking the Import link at the top of the list of built-in collections and pasting the text into the box provided.  The titles of puzzles successfully imported are then shown on the right-hand side as usual.

There are a huge number of Sokoban puzzles available in a standard XSB format, which uses the 7 symbols shown at the top of the table below (in the Generic and Sokoban sections) to represent puzzle definitions as plain text.  This format uses the space character to represent an empty floor cell, although Crossoban also allows the dash ('-') and underscore ('_') symbols to be used, as is often the case when sending the definitions by e-mail. Usually a collection of puzzles is specified with a blank line between each puzzle, and comments appear before the puzzle itself prefixed by a semicolon.  The first comment line is assumed to be the title, unless a Title: label is given explicitly.

Crossoban also introduces a larger set of symbols used to represent Interlock puzzles, which are considerably more complex.  Some Interlock puzzles have starting positions where a cell cannot be represented by a single symbol, in which case Crossoban allows a 2-character or 3-character encoding to be used – to enable such processing the last comment immediately prior to the puzzle must be either @I2@ (for 2-character encoding) or @I3@ (for 3-character encoding).  Example encodings are given in the second table, below.

Single-character encodings

Description Images Symbols

Generic Normal floor  

Solid wall # (hash)

Pusher @ (at)

Sokoban Pusher on goal + (plus)

Goal . (dot)

Box $ (dollar)

Box on goal * (asterisk)

Interlock Coloured box


b g

r y

Box on filter


Box on lock
c h

s z

Box on ice
a f

q x

Coloured pusher


Extensions Black hole ! (exclamation mark)

Linked pusher & (ampersand)

Lock : (colon)

^ >
< v
(caret, greater than,
 less than, letter 'v')

Ice ' (apostrophe)

Pusher on ice " (double quote)

Weak tiles

(lower case) 

(upper case) 

Example multi-character encodings

When using multi-character combinations, pushers may be combined with a digit from 1 to 9 to indicate that they are linked in a particular group – with a single-character encoding only one group of linked pushers is available, using the ampersand ('&') symbol, and the linked pushers would not be coloured.  This is the reason why a 3-character encoding must sometimes be used, to both specify a pusher type, its group number/digit for linking and the type of cell it starts in.

Every cell must be represented by the specified number of characters (2 or 3) but the order is irrelevant, as shown below.  A symbol representing an empty cell (space, dash or underscore) represents a default setting which may be overridden by the other symbol(s) in the cell's definition.  The encodings distinguish between a cell's type and its content – a cell's content is any pusher or box that is expected to move (if not blocked), whereas a cell's type is a static property such as a goal, conveyor, etc.  Walls and black holes are special in that they may cannot be combined with any other type (other than the empty default).
Description Images Symbols

Wall -#




(2 hashes) 

Box on weak floor $w

(dollar/letter 'w') 

(letter 'w'/dollar) 

Linked pusher @1

(at/digit '1') 

(digit '1'/at) 

Red linked pusher
on ice

(apostrophe/at/digit '2') 

(digit '2'/at/apostrophe)