xgammon(6)

๐Ÿ’… xgammon(6) ๐Ÿ’…

okay so bestie, this is the xgammon(6) manual page, she's from the Game section, and she is a lot โ€” but in the best way. grab a snack, we're doing this together ๐ŸŽฒโœจ


โœจ NAME โœจ

xgammon โ€” an X11 backgammon for linux. that's the whole elevator pitch. iconic. ๐Ÿ’–


๐ŸŽ€ 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.

that's it. that's the description. she's mysterious, she's serving minimalism, we respect it ๐Ÿ’…


๐Ÿ”ฅ OPTIONS ๐Ÿ”ฅ

xgammon recognizes the following options โ€” and girl, there are so many, so let's lock in:

  • -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.
  • -?, -help โ€” the classic "help me" flag ๐Ÿซถ

๐ŸŽฎ HOW TO PLAY ๐ŸŽฎ

when you start the game, xgammon will immediately roll and start a game. when it's your turn:

  1. Move pointer to a stone.
  2. Press left button.
  3. Carry stone to the chosen point.
  4. 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. ๐Ÿ™ˆ


[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.


...and that's not even the whole page, bestie. part 2 is loading, don't go anywhere ๐Ÿฆ‹

โœจ X RESOURCES โœจ

ok so bestie, you can also ~customize~ how everything looks and behaves by setting X resources. it's giving personalization era ๐Ÿ’… here's the full menu:

  • .otherdisplay: <displayname> โ€” play a game with a player on some remote X-Terminal. A second xgammon will be displayed over there. (example: xgammon -otherdisplay somehost:0.0)
  • .boardColor: <color> โ€” picks the background color of the board.
  • .lightColor: <color> โ€” picks the background color of the lighter points.
  • .darkColor: <color> โ€” picks the background color of the darker points.
  • .barColor: <color> โ€” picks the color of the bar and the board borders.
  • .whiteColor: <color> โ€” picks the color of the "white" stones.
  • .blackColor: <color> โ€” picks 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, bestie ๐Ÿ˜ญ so this gets set instead:

#define usleep(a) sleep(a)

as a result of that, you can only delay seconds, not tseconds. lowkey tragic but it is what it is.


๐Ÿ’€ BUGS

ok so real talk, the program is still in state of development, so there are certainly bugs. no cap. 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

and that's the whole page bestie, you ate it ๐Ÿ’… this one's from the Game manual section, dated 01Aug1995, and it's the xgammon(6) page โ€” go forth and slay some backgammon ๐ŸŒธ๐ŸŽ€โœจ

๐Ÿ“ฆ where this page comes from