# LURD format

This is a string representation of a solution. Name comes from four letters used to represent four directions: L)eft, R)igth, U)p, D)own.

Lower case letters represent movement (without push). Upper case means man pushes in that direction.

So solution which needs man to move twice left, then three time up, then push twice right will be: `lluuuRR`

YSokoban will export always solution in correct case (i.e. with lower and upper cases) and will accept solution in any case (case is not important when pasting solution).

YSokoban supports pasting (Shift-Ins or Ctrl-V) of RLE packed solution.

Packed solution is like normal LURD format solution but with RLE (run-length-encoding).

RLE has a number followed by letter, number means number of time this letter is repeated.

For example solution described above (`lluuuRR`) can be RLE encoded as `2l3u2R`.

Not only solutions but levels could be RLE encoded too. The only special thing about RLE encoded levels is that | (bar symbol) is used as new line: For example you can paste RLE packed level:

    2_5#|3#3_#|#2_*#_2#|#_#2_*_#|#_*2_#_#|2#_#+2_#|_#3_$2#|_3#2_#|3_4#

which is equivalent to

    2_5#          __#####
    3#3_#         ###___#
    #2_*#_2#      #__*#_##
    #_#2_*_#  --> #_#__*_#
    #_*2_#_#      #_*__#_#
    2#_#+2_#      ##_#+__#
    _#3_$2#       _#___$##
    _3#2_#        _###__#
    3_4#          ___####

YSokoban will create a RLE packed level and solution with Ctrl-Shift-L

There is an option (see options dialog) how to encode space - with underscore '_' or with hyphen '-'. Both characters are supported for import (even space is possible).

# Push format

LURD format describes solution by specifying every move. In contrast "push" format specifies which box shall be pushed to where. It looks like a chess notation (move box from where to where), for example:

    =(H5-G5,H4-H3,F5-F6,F8-R7,F6-R9,G5-R8,H3-H5,F3-Q7,C8-Q9,H5-Q8)

To put solution into a clipboard in push format: press Ctrl-P this will activate push format, to deactivate press again Ctrl-P. If push format is active you shall see P in red circle in top left corner. Now copy will copy solution to clipboard in push format and will deactivate push format. If you want to have push format active all the time (not auto deactivated) then use Ctrl-Shift-P.

Pasting push format does not require that push format is active, YSokoban will try to auto detect it.

There is a special case with go-thru boxes. In normal case they are not mentioned inside solution and YSokoban will automatically use them (if needed). To have them as a notation in "push format" solution press Alt-P instead of Ctrl-P in solution this boxes will be marked with {...}, for example {H4}, which means that box on H4 will be moved away and then pushed back.

If you want to specify "push format" and do not relay on go-thru functionality, then use Ctrl-Alt-P instead of Ctrl-P. In such a case solution will have two pushes for go-thru boxes (pushing away from path and then back to position).

Key | Action
--- | ---
Ctrl-P | activate push format (using go-thru), do it again deactivate. After you do Ctrl-C, it will deactivate by itself. You will see "G" within a RED circle near the upper-left hand corner.
Ctrl-Shift-P | same as above, but after Ctrl-C use, it will not deactivate it.
Alt-P | activate push format (use go-thru and show go-thru). After you do Ctrl-C, it will deactivate by itself. You will see "{}" within a RED circle near the upper-left hand corner. The go-thru boxes are shown within {}
Alt-Shift-P | same as above, but after Ctrl-C use it will not deactivate it.
Ctrl-Alt-P | use push format (do not use go-thru). After you do Ctrl-C, it will deactivate by itself. You will see "P" within a RED circle near the upper-left hand corner.
Ctrl-Alt-Shift-P | same as above, but after Ctrl-C use it will not deactivate it.

Created with Ywiki