NAME
xgammon - an X11 backgammon for linux
SYNOPSIS
xgammon [-otherdisplay <displayname>]
[-boardgeometry <geometry_string>]
[-boardcolor <color>] [-bc <color>]
[-darkcolor <color>] [-dc <color>]
[-lightcolor <color>] [-lc <color>]
[-barcolor <color>] [-b <color>]
[-whitecolor <color>] [-blackcolor <color>]
[-doublerfont <font>] [-smallFont <font>]
[-doubling +doubling]
[-watchmove +wachmove]
[-stonesteps <pixel>]
[-delaytime <tsec>]
[-buttonmove +buttonmove]
[-bm +bm]
[-autoplay +autoplay]
[-rollout +rollout]
[-nr <number_of_rollouts>]
[-f <filename>]
[-h (black|white)]
[-gamekind -g (hvc|cvc|hvh)]
[-winat <points>]
[-? -help]
DESCRIPTION
‘xgammon’, a backgammon program for linux
OPTIONS
xgammon recognizes the following options:
-otherdisplay <displayname>
Play a game with a player on some remote X-Terminal. A second
‘xgammon’ will be displayed there. (example: xgammon
-otherdisplay somehost:0.0)
-boardgeometry <geometry_string>
Defines the size of the board widget. ‘Geometry_string’ must be
an XtGeometry-string (example: 450x350). By default the relation
of width/height of the board is 12/15. <Geometry_string> is
rounded to this relation.
-boardcolor, -bc <color>
Sets the background color of the board.
-darkcolor, -dc <color>
Sets the color of dark points.
-lightcolor, -lc <color>
Sets the color of light points.
-barcolor, -b <color>
Sets the color of the bar and the left and right edge of the
board.
-whitecolor, -blackcolor <color>
Sets the color of the stones.
-humancolor, -h (black|white)
Sets the color of the human player’s stones. Implies a game
between ‘xgammon’ and a human being. (The default).
-doublerfont <font>, -smallFont <font>
These are the fonts used for the doubler dice. Only one large
and one small font can be selected now, not a font family yet.
-gamekind, -g (cvc|hvc|hvh)
Sets the game.
cvc means computer versus computer,
hvc means human versus computer,
hvh means human versus human,
-winat <points>
Play a tournament up to <points> points.
-watchmove, +watchmove
‘xgammon’ will "move" it’s stones.
-stonesteps <pixel>
You can speed up the stones by giving this resource a greater
value. Implies watchmove is set ‘true’.
-delaytime (tseconds)
Sets a delaytime in tenth of a second, which gives you a closer
look on the computer moves. Implies watchmove is set ‘false’.
-buttonmove -mb, +buttonmove +bm
If buttonmove is true, you can set the stones simply by pressing
the button. The left button sets the lower dice value, the
right one the other. In case of equation both buttons can be
used.
-autoplay, +autoplay
‘Xgammon’ will set your stones, if there is only one possible
move.
-doubling, +doubling
Sets the use of the doubler dice. Since the doubling of
‘xgammon’ is still poor, you might wish to turn it off.
-rollout, +rollout
‘Xgammon’ will rollout a position. This rank is read from a
file. (See -f option below.) This file is automatically
generated from the current game, if not specified otherwise.
-nr <number_of_rollouts>
Sets the number of rollouts.
-f <filename>
Specifies the positionfile you want to use. The default is
‘xgammon.save’.
-database <filename>
Specifies the endgame database file to use.
HOW TO PLAY
When you start the game, ‘xgammon’ will immediately roll and start a
game. When it’s your turn:
Move pointer to a stone.
Press left button.
Carry stone to the chosen point.
Release button.
That’s it.
To speed this a little up, try the +buttonmove option or .buttonmove
resource. (See RESOURCES or OPTIONS.)
DOUBLING
When you’re allowed to double, ‘xgammon’ draws empty dice. You can
double by a single click on the doubler dice or press the ‘d’ key.
Some simple popups manage the rest.
This is only possible, when the ‘doubling’ resource is ‘true’. (See
RESOURCES or OPTIONS.)
GAME OPTIONS
There are three different kind of games. Human versus human, computer
versus human, and computer versus computer. The last one isn’t very
meaningful yet, and more or less for reasons of development.
MENU OPTIONS
[edit position]
If you click on this menu entry, ‘xgammon’ will first break the
current game or tournament and draw an empty board. Then you can
enter a position to your liking. The right button gives you a
black stone, the left button a white stone. The middle button
removes a stone. If there are 15 stones of each color on the
board ‘xgammon’ will automatically ask you for the dice and
doubler etc. in a popup. In case of stones already beared off,
you can break the setting of stones by hitting any key. Choose
‘ok’ button and the game continues. You can as well rollout or
maildump this position. (For this purpose set the right
gamekind first.)
[computer finish]
If the game is almost done and you are bored with rolling it
down, you can click this option and the computer will finish the
game. At the end of the game the human player gets control
again.
In this mode the computer will not double.
[rollout]
To rollout a position use this option. The number of games
rolled out are set with the ‘numrollouts’ resource or the -nr
command line option. (see RESOURCES or OPTIONS.) Invoked from
the game ‘xgammon’ will fork itself and start a second, third
... process, so you can continue playing. There will be a popup
to inform you about the current state and the result. This
popup will vanish with any button or key event inside. The
result of the rollout is additionally saved in a
‘xgammon.rollout.<num>.save’ file. It is more appropriate to
use this feature via commandline options. (See ROLLOUT below.)
[mail dump]
Saves the current or an edited position in the format used by
FIBS or in ‘rec.games.backgammon’ newsgroup in a file named
‘xgammon.maildump’.
KEYS
The board reacts on the following keys:
‘q’, ‘<Ctrl>c’ or ‘<Ctrl>d’ quit the game.
‘u’ undoes the current move move.
‘r’ restarts the game (tournament).
‘s’, ‘S’, ‘l’ and ‘L’ save or load a position or game.
You may set these keys in your .Xdefaults file.
TEXT WINDOWS
There are two text windows in the ‘XGammon-Buttons’ window, where the
current tournament, moves, doubler actions etc. are printed. You can
also add comments there. The text in the lower window will be saved if
you invoke any save command.
EDIT A POSITION
You may edit a position, and play out from there, by pressing the ‘edit
position’ menu entry in the ‘game’ menu. Black stones are set with
left mouse button, white stones with the right one. If you misplace a
stone you can remove it with the middle button. There will be a popup
asking for additional information, if you have entered 15 black and 15
white stones, or pressed any key to stop placing stones.
MAIL DUMP A POSITION
Clicking the menu entry ‘mail dump’ ‘xgammon’ will save the current
position in a file named ‘xgammon.maildump’. The occuring format is
that used most often in ‘rec.games.backgammon’ news group. So it
should be very easy to edit a position, add some comments and then mail
or post it.
ROLLOUTS
Even if there is the menu option ‘rollout’, this is more or less a
command line option. An example would be
‘xgammon -rollout -nr 1000 -doubling -f rollout.save’,
which would rollout a 1000 times the position saved in ‘rollout.save’.
It should be rather easy to modify the save file slightly, and make
several rollouts of these positions. All results will be appended to
these files. If you use the menu entry ‘rollout’, it is most important
to set an appropriate ‘numrollouts’ resource in your ‘.Xdefault’ file,
because ‘xgammon’ will not ask you for this value, when starting
rollouts.
X RESOURCES
.otherdisplay: <displayname>
Play a game with a player on some remote X-Terminal. A second
‘xgammon’ will be displayed there. (example: xgammon
-otherdisplay somehost:0.0)
.boardColor: <color>
Specifies the background color of the board.
.lightColor: <color>
Specifies the background color of the lighter points.
.darkColor: <color>
Specifies the background color of the darker points.
.barColor: <color>
Specifies the color of the bar and the board borders.
.whiteColor: <color>
Specifies the color of the "white" stones.
.blackColor: <color>
Specifies the color of the "black" stones.
.doublerFont: <font>, .smallFont: <font>
Defines the fonts used for doubler dice. The doubler dice size
depends on the board size. If the board size is too small, the
smallFont will be used.
*board.cursor: <cursor>
Sets the cursor to be used for the board widget(s).
.humanStones: <black|white>
If you want to play the white stones set this resource to
"white". ("Black" is Default.)
.watchmove: <true|false>
If watchmove is true, you can see the stones "fly", when the
computer moves.
.delaytime: <seconds>
Sets a delaytime in tenth of a second, which gives you a closer
look on the computer moves. Implies watchmove is set ‘false’.
.stonesteps: <pixel>
You can speed up the stones by giving this resource a greater
value. Implies watchmove is ‘true’.
.doubling: <true|false>
Sets the use of doubler dice. Since the doubling of the
computer is still poor, you might wish to turn it off.
.buttonMove: <true|false>
If buttonmove is true, you can play by simply pressing a button.
The left button sets the lower dice value, the right one the
other. On equation both buttons can be used.
.numrollouts: <number>
Specifies the number of rollouts from a given position, before
adding the result to a position file. Any unsigned integer value
should be all right.
.positionfile: <name>
The file, where ‘xgammon’ shall save and load all informations
to-and-fro.
DIAGNOSTICS
‘Xgammon’ uses the function usleep() for delaytime. Usleep is not
defined on some systems.
#define usleep(a) sleep(a)
is set then. As a result, you can only delay seconds, not tseconds.
BUGS
The program is still in state of development, so there are certainly
bugs. ‘Xgammon’ will save the current position in a ‘xgammon.sig_save’
file on some signals. Please email this file to the authors. It may
help find the bugs. If you can generate a core dump, gzip, uuencode
and mail it, which would also be very helpful.
Otherdisplay:
Some popup resources and actions on ".otherdisplay" sometimes get lost.
Black can set white stones and vv. (funny feature ?)
AUTHORS
Lambert Klasen and Detlef Steuer
email:
klasen@asterix.uni-muenster.de steuer@amadeus.statistik.uni-dortmund.de