packages icon
*****************************************************************************

                                XGOSH

                           Scott W. Hassan

                             Version 1.7

                            April 10, 1991

                        Modified by Eric Osman 
                           and Namhoon Yo.

*****************************************************************************

xgosh is a quick and easy game of Go.  It allows two people to play a
game of Go easily over the network.  It uses the X Windows' feature of
opening two displays (One for each player.)  

NOTE: Only one xgosh program runs per game.  It serves both displays at
the same time.  This is unlike the older netgo programs when both players
had to have a copy of the program and meet at a port.  X Windows handles
all of this busy work.

usage:  xgosh [-options ...]

where options include:
        -whitedisplay dpy         X server on which to display white player.
                                  will default to the current DISPLAY variable.
        -blackdisplay dpy         X server on which to display black player.
                                  will default to the current DISPLAY variable.
        -whitegeometry WxH+X+Y    size and location of white player's window.
                                  Defaults to 350x350.
        -blackgeometry WxH+X+Y    size and location of black player's window.
                                  Defaults to 350x350.
        -handicap number          number of black handicap stones.
                                  Default to zero.
        -loadfile filename        filename to load in.
                                  Defaults to "xgosh.save"
        -savefile filename        filename to save under.
                                  Defaults to "xgosh.save"
        -blacktime seconds        Amount of time alotted for all black moves.
                                  Defaults to 1800 seconds (half hour)
        -whitetime seconds        Amount of time alotted for all white moves.
                                  Defaults to 1800 seconds (half hour)
        -graystipple              Use a gray background for the board color.
        -size w h                 Sets the size of the game board.
                                  Defaults to 19 19.
                                  Try playing 1 5 go, etc.
        -beep                     Sounds a beep after every move.
        -singledisplay            Play a game using only one display.
        -usage                    The parameter descriptions.

THE GAME:

        When activated, the game will display two windows, one on the
        whitedisplay and the other on the blackdisplay.  These are the
        title windows that are used to confirm the starting conditions
        of the game.  Both players should click on their window and
        the two game boards will appear afterwards.
        
        In the information window that appears, there will be two
        stones in the upper left hand corner of
        each window (one white and the other black.)  A box will
        surround one of the stones indicating whose move it is.

        Below these two stones is a message: "Captured Stones: Black(0) 
        White(0)."  These record the number of captured stones of each 
        color.

        When the game begins the handicap stones will automatically
        appear.  One of these days, I will allow the players to place the
        stones themselves.

PLAYING THE GAME:

        Play will start as soon as the game is executed.  The first player's
        clock will start clicking away immediately.  The short hand is
        for minutes and the longer hand is for seconds.  I have not 
        actually tested the accuracy of these clocks yet (please someone
        do it for me!)

        To place a move, position the mouse over an intersection and
        press the left mouse button.  A stone will be drawn in its
        place.  The turn will then revert to the other player and his
        clock will start ticking.

        A small blinking cross is left on the last piece played.  This is
        very helpful for figuring out where your opponent played
        last.

        To pass a turn, press the p key.
        To undo a move, press the u key.
        To quit the game, press the q key.
        To load a game, press the l key.
        To save the game, press the s key.
        To enter the kill mode, press the k key.  This will allow
        for any side to destroy whole groups by clicking on
        one of the stones of the group.  Press the k key again to
        resume the game.
        To calculate the score of the board at any time during the
        game, press c.  The algorithm assumes that all dead stones
        are removed from the board prior to scoring.
        
Loading and Saving of games:

        I have to admit the saving and loading functions are pretty
        primitive.  

        To Load a game:

        The strategy is to specify the filename at the command line
        using the -loadfile argument.  When the game is started,
        the file will automatically be loaded and play then
        commences.
        At any point during the game, press 'l' and the game
        will be re-loaded.

        To Save a game:

        Any time during a game, press 's' and the game will be
        saved.

Afterword:

        I hope you will like this program.

        Please send all comments to:

                hassan@informatics.wustl.edu

                                        Thanks,
                                        
                                        Scott W. Hassan
          


p.s.  If you think this program has some merit, you too
      can fund better versions of this program and
      others like it by sending $10.00 to:

                Scott W. Hassan
                Old Withey RD #1
                Belmont, NY   14813

      Contributions will be greatly appreciated.  Thanks.