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

				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.
