@DATABASE ProGammon.guide @$VER: ProGammon.guide 2.5 (22.1.98) @NODE Main "ProGammon Documentation" -------------------------------------------------------------------- @{b}ProGammon Version 2.5 22nd January 1998 FREEWARE The Ultimate Amiga Backgammon Game@{ub} -------------------------------------------------------------------- @{" Introduction " LINK Introduction} @{" Requirements " LINK Requirements} @{" What's New " LINK New} @{" The Basics " LINK Basic} @{" Game Play " LINK Game} @{" Menus " LINK Menus} @{" Tool Types " LINK Tool} @{" The Dice " LINK Dice} @{" Acknowledgments " LINK Acknowledge} @{" Author " LINK Author} @ENDNODE @NODE Introduction @{b}Introduction:@{ub} ------------- Have you tried playing computer backgammon before? Were you a little disappointed at the poor game play? I think you will find that this program generally plays a very intelligent game of backgammon. In the long run, it will take an expert player to break even with the Amiga. This program will keep track of your wins and losses so you can see how good you or the Amiga really is. It's operating system friendly and is very cpu & memory efficient so your 3-D rendering work will barely slow down while you play a game or 3. :) @ENDNODE @NODE Requirements @{b}Requirements:@{ub} ------------- This program should work on any Amiga with kickstart 2.04 or greater. With an AGA Amiga, this game will use a 640 x 480 multiscan productivity screen, if available. One user also informed me that it works great on his Picasso II+ graphics board in his A1200T. Thanks Dirk! @ENDNODE @NODE New "What's New" @{b}What's New:@{ub} ----------- Version 2.5: -improved the AI used during the late stages of the game. It should be much harder to gammon the Amiga. -added some code to encourage the Amiga to maintain a wall of 6 stones once it has established one. -cleaned up various routines for speed and size. Version 2.4: -added an Undo function so you can start your move over again if you need to. -fixed a bug in v2.3 where occasionally the program would prevent you from making a valid move. -removed the debug_hunks which significantly reduced the size of the program. Thanks to Nils Goers for all of the above suggestions and improvements. -finally got around to putting the documentation in AmigaGuide format. -made another slight improvement or two in game play. @ENDNODE @NODE Basic "The Basics" @{b}The Basics:@{ub} ----------- The game begins with the following board setup: ******************************************** Direction of * 24 23 22 21 20 19 18 17 16 15 14 13 * Movement: * v v v v v v v v v v v v * * X O O X * ---> * X O O X * * O O X * | * O X * | * O X * | * * V * 3 5 * * * | * X O * | * X O * | * X X O * V * O X X O * * O X X O * <--- * ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ * * 1 2 3 4 5 6 7 8 9 10 11 12 * ******************************************** ^ ^ ^ ^ ^ ^ Your HOME area is positions 1 to 6. There are 24 positions on the board and each player begins with 15 stones. 'X' represents your stones and the 'O' represents the Amiga's stones. In the diagram above you have 2 stones on position 24, 3 stones on position 8 and 5 stones each on positions 6 and 13. The 3 and the 5 in the center of the board represent the dice. Each player takes turns rolling the dice and moving their stones an amount equal to whatever was rolled. The object of the game is to move your stones in a clockwise direction into your home area. When all 15 stones are home you can remove them from the board depending on what you roll. The first player who removes all of their stones from the board wins the game. The game starts with each player rolling one die to determine which player gets to go first. For example, if the Amiga rolled a 3 and you rolled a 5 then you would start by using this combination for your first move. Here is one possibility: ******************************************** * 24 23 22 21 20 19 18 17 16 15 14 13 * * v v v v v v v v v v v v * MOVE 1--> X X O O X * * O O X * Using the 3 * O O X * * O X * * O <---MOVE 2 * * * _ _ * Using the 5 * * * X O * * X X O * * X X O * * O X X O * * O X X O * * ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ * * 1 2 3 4 5 6 7 8 9 10 11 12 * ******************************************** ^ With the 3 I moved one stone from position 24 to position 21. For the second move I moved a stone from position 13 to position 8. After the opening move each player alternates rolling the dice. Either player can move to any position as long as it is not blocked by 2 or more of the opposing players stones. In the above example I would not have been allowed to use the 5 to move a stone from position 24 to position 19 because the Amiga has position 19 blocked. It is possible to move to a position that has only 1 Amiga stone on it. When this happens, your stone will take possesion of that point and the Amiga stone will be knocked off onto the center bar. Any stone on the bar has to enter the board in the opposing players home area. You must get back on the board, on a point that is not blocked, before any further moves are allowed. If you cannot make a move just click once on the dice to give up your turn and resume play. When all of your stones are home, you can start removing them from the board. This is called bearing off. If, for example, you rolled a 6 and a 2, you could remove one stone from position 6 and another one from position 2. If you rolled a 6 but didn't have any stones on position 6 to remove then you are allowed to take one stone off the next highest position. It is also legal to move stones within your home area rather than bearing them off. It might be an advantage to do this if the Amiga still has some stones in your home area and is trying to knock you off onto the bar. The only other rule is that both players must use as much of what they rolled as possible. If you rolled a 5 and a 3 and it is possible to use both the 5 and the 3 then you must make both moves. If you can only use the 5 or the 3 but not both then you are required to use the higher amount(5). The Amiga plays by these rules and now since version 2.3, you are forced to play by these rules also. @ENDNODE @NODE Game "Game Play" @{b}Game Play:@{ub} ---------- To move a stone just click once on the stone and then once on the spot where you want it to go. If you did it right then the stone should move to the new location or else a message will appear to help you out. If you roll doubles ( i.e. two 3's ) then instead of getting two moves of 3 you get four moves of 3. Anytime during a move you can get an update to how many moves you have left by clicking anywhere outside the main board area. In the message area will be displayed the dice values that have not yet been used. You can also make multiple moves. If, for example, you roll a 3 and a 4 then you are allowed to make one move of 7 as long as both points between your present location and your destination are not blocked. If you are unable to make a move then just click once on the dice to continue with the game. If you select a stone by mistake then just click on that same stone to start your move over again. Once all your stones are in your home area, you can remove them from the board by double clicking on them. A gammon will be declared if one player is able to get all his stones off before the other player has removed one. This is equivalent to winning 2 games. A backgammon occurs when one player gammons the other player plus he traps at least one of the opposing players stones in his home area. This is worth 3 wins. @ENDNODE @NODE Menus @{b}Menus:@{ub} ------ @{u}BAR@{uu} With this option all 15 stones will start off on the center bar. You will have to get all the stones back on the board before you can start to move them. Just select BAR in the menus and then select New Game to play this version. @{u}Undo Move@{uu} You can restart your move from the beginning by selecting this from the menus. You could also accomplish the same thing by clicking on the stone and putting it back wherever it came from. @{u}Colors@{uu} Selecting this will allow you to adjust both the board colors as well as the speed of the game. If you select SAVE in the color adjustment window then your game preferences will be saved to a 266 byte file called gammon.prefs in the current directory. The program keeps track of the AMIGA's winning percentage in this file as well as statistics on the dice. If you want this feature then remember to click on SAVE before the end of the first game. @{u}Stats@{uu} This menu item will display a table of what you have rolled so far as well as what your average roll has been. A long term average roll of 8.167 is ideal. Clicking on the left side of the stats window will show the statistics for the present series of games and if you click on the right side the long term statistics in the gammon.prefs file will be displayed. @ENDNODE @NODE Tool "Tool Types" @{b}Tool Types:@{ub} ----------- MAINFONT=topaz FONTSIZE=11 These 2 tool types allow you to use any reasonably sized font for your menus, message display and window title in VGA mode. If the program is unable to find this font or if your size choice is too large then it will use topaz 8 as the default. REVERSE I prefer setting up the board so that you move your stones from the upper left part of the screen to the lower left in a clockwise direction. If you would prefer that the board was set up so that your stones move from the upper right part of the board to the lower right in a counter- clockwise direction then use this tool type. NTSC This tool will force the program to use a 640x200 NTSC screen or dblNTSC screen if available. @ENDNODE @NODE Dice "Testing the Dice" @{b}Testing the Dice:@{ub} ----------------- The dice used in this program have been rolled millions of times in order to test them for randomness and fairness. They are produced using the SAS/C random number generating function called drand48(). In testing, I have found the numbers returned by this function to be 100% random. Here are some answers to the usual questions that I have received: There is only one subroutine that controls the rolling of the dice. The RollDice() routine has no idea whether it is being called to roll the dice for you or for the Amiga. It does not check to see who is on the bar or what points are blocked or whether it's the start of the game or the end. All it does is just roll the dice. The Amiga is not cheating just because it rolls a 6 to start the game or rolls doubles to end the game. It has gotten lucky and if you play enough games I'm sure that you will get lucky too. Every roll of the dice will be saved in the gammon.prefs file after you complete at least one game and select Quit in the menus or close the game screen. During the game you can select Stats in the menus to see the averages for the games that you are presently playing. By clicking on the right portion of the statistics screen you can also examine the stats saved in the gammon.prefs file. After you play a large number of games you should be convinced that the dice are 100% legal. Good luck! @ENDNODE @NODE Acknowledge "Acknowledgments" @{b}Acknowledgments:@{ub} ---------------- Many thanks to the small handful of people that took the time to register. Special thanks to Nils Goers who showed me the correct way to compile a program. Without his encouragement, this program would not have reached it's current level of play. @ENDNODE @NODE Author @{b}Freeware:@{ub} --------- You will be hard pressed to find a significantly better playing computer backgammon game on any platform at any price. Questions, comments and bug reports are most welcome. Long live the AMIGA! Mail: Kevin Glynn #7, 4604 - 13th Street NE Calgary, AB, Canada T2E 6P1 e-mail: glynnk@cadvision.com @ENDNODE