     XSOK(6)                          Handmade                           XSOK(6)
                                      May 1996

     NAME
          xsok - generic Sokoban game for X11, Version 1.02

     SYNOPSIS
          xsok [ options ]

     DESCRIPTION
          xsok is a single player strategic game, a superset of the well known
          Sokoban game.  This manpage describes only the user interface of xsok.
          If you want to create own levels, you should consult the xsok manual
          for more information.

          The target of Sokoban is to push all the objects into the score area
          of each level using the mouse or the arrow keys. For the other level
          subsets, there are different kinds of objects, and special effect
          squares.

          xsok can be played using only the mouse, or only the keyboard.
          Keyboard and mouse bindings are defined through a textfile. This
          manual page describes the default bindings.

     OPTIONS
          All standard X toolkit parameters may be given, such as -display
          display etc.  Additional options are

          -rules level subset
              This option specifies the initial level subset for xsok.  Valid
              built-in rule names are Sokoban, Cyberbox, and Xsok, but you may
              implement new level subsets without recompiling the game.  Level
              subsets share common characteristics of the board.  In Sokoban,
              for example, all boxes have the same weight.  In Xsok, the first
              level is a demo level, where you can experiment with the new
              objects.

          -level startlevel
              Set the starting level.

          -username username
              In a save-game file, your name, as found in the /etc/passwd file,
              and the hostname of your computer, will be stored in the file. The
              default format is realname (username@hostname.domain), for example
              Michael Bischoff (mbi@flawless.ts.rz.tu-bs.de).  You can override
              this default string with the argument to the username option and
              provide a different e-mail address, for example
              xsok -username "Michael Bischoff (m.bischoff@tu-bs.de)".

              If you break the scores for one level, your solution will be saved
              automatically.

                                        - 1 -            Formatted:  May 8, 2001

     XSOK(6)                          Handmade                           XSOK(6)
                                      May 1996

          -xsokdir xsokdir
              This option sets the root of the xsok data file tree. The default
              is /usr/games/lib/xsok.

          -xpmdir xpmdir
              This gives the directory from where to load the graphic data.

          -savedir savedir
              This option sets the directory for save game files and the xsok
              highscore files. The default is /var/games/xsok.

          -messageFile messagefile
              This option sets the name of an alternative message file for xsok.
              The pathname is relative to xsokdir. The default is messages, and
              does not exist, which means to use the internal messages.

          -keyboardFile keyboardfile
              This option sets the name of the file defining the keyboard
              bindings.  The pathname is relative to xsokdir. The default is
              keys.  The bindings in the default file are described below.

              All command line options may be abbreviated, or set by the X11
              resource manager. The resource name for option -xyz is Tableau.xyz
              and its class name Tableau.Xyz.

     KEYBOARD BINDINGS
          The arrow keys will move the man. The default binding is similar to
          the binding in xsokoban. Some commands accept a numerical prefix (i.e.
          typing some digits before the command key), which usually is used as
          an operation count.

          a       Display the author of a level (if known).

          b       Drops the bookmark.

          g       Goto bookmark.

          i       Displays the level comment (if any).

          s       Saves the current position.

          L       Reloads a saved game.

          R       Restart this level. With numerical prefix n, jumps to move
                  number n.

                                        - 2 -            Formatted:  May 8, 2001

     XSOK(6)                          Handmade                           XSOK(6)
                                      May 1996

          N       Proceed to the next level. With numerical prefix n, jumps to
                  level n.

          H       Reread the highscore table.

          P       Return to the previous level.

          U       Proceeds to the next unsolved level.

          q       Quits the game.

          v       Shows the version of xsok.

          ?       Shows the current score.

          b       Shows the best score for this level.

          c       Drops the bookmark at the current position.

          u       Undoes the last elementary move. Accepts numerical prefix.

          r       Redoes last move (undoes an undo). Accepts numerical prefix.

          (       Starts recording a macro (sequence of moves)

          )       End a macro.

          <ENTER> Replays a macro.

     KEYBOARD BINDINGS
          With the default button assignment, button 1 is bound to the function
          MouseMove. If pressed on a clear square, the man will move to that
          location via the optimal path if such a path exists. If pressed on an
          object that is adjacent to the player, the object will be pushed.

          Button 2 is bound to MouseDrag. This command requires that you press
          the mouse button on a location where a box resides, drag the mouse,
          and release the button on an empty square. The man will then move the
          box from the first square onto the second with the minimal number of
          pushes, if it is possible at all.  Please note that the man will not
          move any other object and will only use squares without effects.

          Button 3 is bound to MouseUndo. This function undoes one of the
          previous commands, which would possibly require a lot of calls to the
          atomic undo function.

     NATIONAL LANGUAGE SUPPORT
          xsok has simple support for different languages. All messages which
          appear in the X11 window may be overloaded by files, as well as the

                                        - 3 -            Formatted:  May 8, 2001

     XSOK(6)                          Handmade                           XSOK(6)
                                      May 1996

          key bindings.  The typical support consists of an application-defaults
          file, a message file, and a keyboard file. Possibly translated
          online-help files are also there.  To select a different language,
          call xsok after setting the environment variable LANG to the desired
          value.  Currently, no translated version is available.

     FILES
          (Directories may differ on your system.)

           /usr/games/bin/xsok
           /var/games/xsok/type.score
           /var/games/xsok/type.nn.{sv,bs,mp,mm}
           /usr/doc/xsok/COPYRIGHT.{GNU,xsok,xpm}
           /usr/doc/xsok/xsok.dvi
           /usr/doc/xsok/cyberbox.doc
           /usr/games/lib/xsok/floor.xpm.gz
           /usr/games/lib/xsok/objects.xpm.gz
           /usr/games/lib/xsok/keys
           /usr/games/lib/xsok/keys.help
           /usr/games/lib/xsok/type.def.gz
           /usr/games/lib/xsok/type.help

          Where type is one of Sokoban, Xsok, Cyberbox, and possibly others.

     CREDITS
          Inspiration for xsok came from xsokoban, a previous implementation of
          the Sokoban game by Joseph L. Traub. From this game, the wall graphics
          were taken, and the mouse button assignment.  xsokoban's level files
          can be used without change, but by default, all level files of a level
          subset are combined into a single file.  Of course, credits also go to
          the unknown author of the curses based game.

          The Cyberbox levels (and a MSDOS game of the same name) are written by
          Doug Beeferman.

     BUGS
          The undo function is too slow.  Highscore file handling uses no file
          locking.

          Cyberbox zappers are implemented as one-way passages, which causes
          worse scores and easier levels.

          Please mail bug reports to mbi@mo.math.nat.tu-bs.de.  Fixes are
          especially welcome.

     SEE ALSO
          xsokoban(6x), sokoban(6)

                                        - 4 -            Formatted:  May 8, 2001

     XSOK(6)                          Handmade                           XSOK(6)
                                      May 1996

     AUTHOR
          Michael Bischoff

     COPYRIGHT
          Copyright (c) 1994 by Michael Bischoff (mbi@mo.math.nat.tu-bs.de)

          Permission to use, copy, modify, and distribute this software and its
          documentation for any purpose and without fee is hereby granted,
          provided that the above copyright notice appear in all copies and that
          both that copyright notice and this permission notice appear in
          supporting documentation.

          xsok was developed under Linux, the free UNIX for the IBM-PC and
          compatibles. xsok is distributed by terms of the GNU General public
          license (GNU Copyleft).

                                        - 5 -            Formatted:  May 8, 2001