Crossoban – puzzle definitionsCrossoban 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 | ![]() |
- _ |
(space) (dash) (underscore) |
||
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 |
|||
Filter |
![]() ![]() ![]() ![]() |
b g r y |
||||
Box on filter |
![]() ![]() ![]() ![]() |
C H S Z |
||||
Box on lock |
![]() ![]() ![]() ![]() |
c h s z |
||||
Box on ice |
![]() ![]() ![]() ![]() |
a f q x |
||||
Coloured pusher |
![]() ![]() ![]() ![]() |
A F Q X |
||||
Extensions | Black hole |
![]() |
! | (exclamation mark) | ||
Linked pusher |
![]() |
& | (ampersand) | |||
Lock |
![]() |
: | (colon) | |||
Conveyor |
![]() ![]() ![]() ![]() |
^ > < v |
(caret, greater than, less than, letter 'v') |
|||
Ice |
![]() |
' | (apostrophe) | |||
Pusher on ice |
![]() |
" | (double quote) | |||
Weak tiles |
![]() ![]() ![]() |
w W |
(lower case) (upper case) |
|||
Example multi-character encodings |
||||||
Note:
|
||||||
Description | Images | Symbols | ||||
Wall |
![]() |
-# #- ## |
(dash/hash) (hash/dash) (2 hashes) |
|||
Box on weak floor |
![]() |
$w w$ |
(dollar/letter 'w') (letter 'w'/dollar) |
|||
Linked pusher |
![]() |
@1 1@ |
(at/digit '1') (digit '1'/at) |
|||
Red linked pusher on ice |
![]() |
'@2 2@' |
(apostrophe/at/digit '2') (digit '2'/at/apostrophe) |
|||