@DATABASE ProGammon.guide @$VER: ProGammon.guide 2.6 (29.5.98) @NODE Main "ProGammon Documentation" -------------------------------------------------------------------- @{b}ProGammon Version 2.6 29th May 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? An excellent backgammon player by the name of Phillip A. Cochran taught me a thing or two about how this game should be played. This version has been completely rewritten and the timid, unconstructive moves of past versions have been replaced. Users should now have their hands full with a much bolder, aggresive, dynamic game. This program will keep track of your wins and losses so you can see how good you or the Amiga really is. It now also keeps track of gammons and backgammons. 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.6: -complete rewrite of the AI to encourage more blocking and maintaining of key positions. Thanks Phillip! -added a NAME tool type and a CHEAT tool type so you can use your own dice if you don't like the computer generated ones. -also added a DONE tool type. See the Tool Type section. -click on the dice after you complete a game and the Amiga winning percentage will now be displayed. 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. @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. Statistics on wins/gammons/backgammons are now also displayed within this window. Clicking on the left side of the stats window will show the statistics for the present series of games and clicking on the right side will show the overall statistics for all games that have been played, including previous games stored in the gammon.prefs file. @ENDNODE @NODE Tool "Tool Types" @{b}Tool Types:@{ub} ----------- MAINFONT=topaz FONTSIZE=8 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. NAME=Kevin Replace Kevin with your name and then you won't have to be called Human anymore. CHEAT This tooltype simply lets you use your own dice. Click on the dice in one of 6 quadrants and you will see what I mean. If you would like to be able to create an external dice file and then have this program read in dice values from there then let me know. DONE With this tool type you will have to click on the dice after each move to signal to the Amiga that you are done. Some users like to be able to see how a move looks before having to commit themselves to it. No more accidental moves. @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 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 about 250+ games, you should be convinced that the dice are 100% legal. If you still think that this game is cheating then you can use the CHEAT tooltype which will allow you to enter your own dice values. Play a few games with a real set of dice and you will probably find that this program still plays a pretty good game of backgammon. If you would like to use your own random number generating routines with this program then let me know and I'll see what I can do. @ENDNODE @NODE Acknowledge "Acknowledgments" @{b}Acknowledgments:@{ub} ---------------- Thanks very much to the 10+ people that took the time to register. Special thanks to Nils Goers who showed me the correct way to compile a program. Many, many thanks to Phillip A. Cochran who taught me how backgammon is supposed to be played. Hopefully this version will be a little more challenging! I'd also like to thank Glenski Shannon for nagging me to death! It's good to know that someone appreciates a good game of backgammon. Without the encouragement of the registered users, this program would not have reached it's current level. @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. This time, I mean it! Questions, comments and bug reports are most welcome. Long live the AMIGA! Mail: Kevin Glynn #7, 4604 - 13th Street NE Calgary, AB T2E 6P1 CANADA e-mail: glynnk@cadvision.com @ENDNODE