═══ 1. Extended help for Yatzee ═══ This program is a computer-version of a game of dice called Yatzee. To get an overview of the game and its possibilities, select Contents in the menu Options in the action bar, or press Ctrl+C. To get an overview of the rules of Yatzee, choose rules. ═══ 1.1. The game sheet ═══ Each player gets his own game sheet, which not only shows the players dices and score, but also all the other players dices and score. The game sheet opens by starting the program YATZYNET.EXE. When this program is executed, it is important, that current directory is the one where the system was installed. This is also true if you put the game in a group-menu. Don't forget to mention the right directory in the "Working directory" entryfield. The game sheet is a vindow, that contains several child windows. Each of these child windows shows a participating players dices and score-board. The child windows are self contained and can be freely manipulated, i.e. minimized. Except from your own window, you are not allowed to use them for playing. You play the game on your own child window, which as a default is placed to the left on the game sheet. Normally you will manipulate the dices with the mouse, but you can also use the keyboard. Take a look on the Keys help for a description of the meaning of the keys. The description of how to select and deselect the dices and how you throw the dices is found in dices. At the same time as you are playing, others can play too. There is no notion of your "turn", unless the players all agree upon it. As soon as a player does something in his child window, this is immediately reflected on the other players game sheets. Everybody are therefore always informed of the progressing game. It is not necessary, that all participants commence on the same time. A player is able to begin playing after some or all the others have finished. The game is over when all the players has placed a score in all the score categories. A new game can begin when the server-program has terminated and is restarted. ═══ 1.2. Playing on one computer ═══ The game is aimed at one game sheet on each players computer, but it is possible to create all game sheets on a single computer. If you do that, you must also execute the server-program on this computer too, and not on the LAN-server. Also, you should not enter a servername in the dialogbox Insert player. ═══ 1.3. Language support ═══ Normally the program will start in the language that OS/2 has been told to use for this computer. If the language is not supported, english is used. You can ask the program to use another language than the default by entering the country code when you start the program. For example will the following command make the program run in danish, even on an american computer: YATZYNET 45 The different country codes normally equels the countrys international dial-numbers. Here are some examples: Country Country code Belgium 32 Denmark 45 France 33 Germany 49 Italy 39 Holland 31 Norway 47 Spain 34 Sweden 46 Schwitzerland 41 Note: Only english and danish are currently supported. If anybody wants to translate it to other languages (or to correct my english), please contact me on the address mentioned in Acknowledgments. ═══ 1.4. Limitations ═══ The game allows up to ten simultaneous players. If the program is minimized while new players are inserted, their child windows are placed under each other on the game sheet. ═══ 1.5. Information for programmers ═══ The program utilizes a lot of unique OS/2-features, such as user-developed controls, (dices and sets of dices), multiple threads (in the server-program), Information Processing Facility (this help), Named Pipes (communication between the game sheets and the server-program), Dynamic Link Libraries (for various language-dependent resources), National Language Support, use of user profiles (for storage of the player- and servername), Common User Access Multiple Document Interface, an undo-facility, and so on. It was developed using the IBM Programming Tools and Information version 1.2 and the IBM C/2 version 1.1. The editor used was the IBM Live Parsing Editor. The development process was undertaken on an IBM Portable P70-061 with 4MB memory. The operating system was IBM OS/2 Standard Edition 1.2. Note that this program, which is aimed at a LAN-environment, is developed on a stand-alone PC without any LAN-facilities. Since so many unique OS/2-facilities have been used, the program is a good illustration of the potentials of OS/2. The program can, besides the Yatzee-game, be used as an example of OS/2's broad capabilities. Any questions, comments or error reports should be directed to the address mentioned in Acknowledgments. ═══ 2. Keys help for Yatzee ═══ The following keys can be used during the game: Key Function Ctrl+I Insert player Ctrl+T Transfer throw Ctrl+R Reset dices Ctrl+D Dices F10 Transfer the focus to the actionbar Keys for throwing and selection of dices: Key Function Spacebar Toggles the dice with focus between selected and not selected Arrow keys Move focus between the dices Enter Thow the dices which p.t. is selected. Note that the dice which has the focus always is selected and participates in the throw, even though it on the time for the throw is not selected. Other keys: Key Function Alt+ Provide categories in the dialogbox Transfer throw Besides the above mentioned keys, OS/2's normal keys can be used - i.e. F1 for help. ═══ 3. Help for actionbar ═══ In this item, there is help for the different menu-choices. ═══ 3.1. Options ═══ Here you select between a row of choices, which controls the game. Look at the the help for the individual items to get a description. ═══ 3.1.1. Insert player ═══ When you select this item, you can insert a player by entering his or hers name. If you are playing in a LAN-environment, the name of the computer on which the server-program runs must also be entered. It is only possible to insert one player per game sheet. When this has happened, the item turns grey and cannot be selected again. ═══ 3.1.2. Transfer throw ═══ When you select this item, you transfer your throw to the score-board. The item cannot be selected until you have thrown the dices at least once since the last transfer to the score-board. ═══ 3.1.3. Undo transfer ═══ When you select this item, you undo the last transfer of a throw to the score-board. After the selection of this item, you are in the same situation as just before the transfer took place. This means, that if you had one or two throws left, you are now able to make them. Note: This item can only be selected just after a transfer of a throw to the score-board. If you for example have made a Reset dices in the meantime, the Undo transfer is not applicable. ═══ 3.1.4. Reset dices ═══ When you select this item, you removes any selections of dices and they are all reset to aces. This item can only be selected just after that a throw has been transferred to the score-board. ═══ 3.2. Window ═══ When you select this item, you can select between your own child window with dices and the other players child windows. This item makes the program independent of a mouse. ═══ 3.2.1. Dices ═══ When you select this item, you give your own dices focus. This item makes the program independent of a mouse. ═══ 3.2.2. About ═══ When you select this item, you show the programs About-dialogbox. ═══ 4. Dialogboxes ═══ Help to the dialogboxes in the game. ═══ 4.1. Insert player ═══ Help to the entryfields of the dialogbox Insert player. ═══ 4.1.1. Name of player ═══ In this entryfield you enter the name of the player. The name helps the other players identifying each other. It is possible for two or more players to have the same name, but it is recommended to use unique names. The entryfield can contain a maximum of 39 characters, which will be remembered between games. ═══ 4.1.2. Name of server ═══ When you play in a LAN-environment, the server-program must be started on the LAN-server. The machine-identification of the server must be entered in this entryfield. If you are in doubt about which servers you have access to, you can use the NET VIEW-command. If you want further information, see your local network-administrator or consult the handbook OS/2 LAN Server Network Administrators Guide. The entryfield can contain a maximum of 8 characters, which will be remembered between games. ═══ 4.2. Transfer throw ═══ In this dialogbox, you specify where to place your throw. It is only possible to choose between categories not chosen before. The program makes a suggestion, but if you want to make another choice, you can select between the available options. Either click on the down-arrow or press Alt+ on the keyboard. It is possible to undo the transfer by selecting Undo transfer. ═══ 5. The server-program ═══ This program is the center of communication between the game sheets, whether the game takes place on one or more computers. When more computers are involved, the server-program must be executed on the server in the local area network. The name of the server-program is YASERVER.EXE. The server-program must be started before the first player can be inserted. When the server-program has been started, it waits for the first insertion. If it does not receive an insertion within two minutes, it will bring itself to an end. When the last player has terminated and closed the game sheet, it will also bring itself to an end. When at least one player has an open game sheet, the server-program allows fifteen minutes of inactivity before it brings itself to an end. It is possible to start the server-program from any computer in the network via the NET RUN-command. The current drive must be the network-drive upon which the server-program is placed. If you want further information, see your local network-administrator or consult the handbook OS/2 LAN Server Network Administrators Guide. During playtime, the server-program writes to its window whenever a player is inserted and terminated. If you want more exhaustive information, you can pass any parameter to the program, when it is started. For example the following command causes full information written to the window about the various messages, which the server-program processes: YASERVER 1 ═══ 6. Rules for Yatzee ═══ The game of Yatzee is played with five dices, and is won by the player with the highest score when the game is over. The game consists of fifteen rounds per player. For each round, the player can make up to three throws. After each throw, the player can optionally deselect any number of dices or none at all. After the first or second throw, the player may transfer the throw to the score-board. After the third throw, the throw must be transferred. It is possible for a dice to participate in a throw even though it earlier in the same round was deselected. There is fifteen score-categories, and each round results in one of them being filled, possibly by nil. It is only possible to transfer once to a score-category. However, under certain circumstances, it is possible to undo the last transfer. For further information, see Undo transfer. As a generel rule, the score in a category is equal to the number of pips on the dices which is a part of the name of the score-category. Only the Yatzee score-category is an exception from this. The upper six categories on the score-board are called Aces, Twos, Threes, Fours, Fives and Sixes. For each, only the dices belonging to the name counts when the score is calculated. If for example a throw consisting of one ace, two threes, one fiver, and one sixer is transferred to the category Threes, 2 times 3 equals 6 points are reached. If the throw one ace, two threes, and two sixes are transferred to the category Sixes, 12 points are reached. For these six upper categories, it is possible to get a special bonus of 50 points, when the sum of their scores is greater than 62. This equals an average of three dices in each category. Until a throw has been transferred to all these six categories, the bonus-category keeps a record with a possible surplus or deficit. When all the categories have received a score, the bonus-category contains the sum of the scores inclusive any bonus. The next four score-categories is called One pair, Two pairs, Three alike and Four alike. When a throw is transferred to these categories, the score is given according to the name of the category. For example a throw of two threes, one fiver and to sixes transferred to One pair yields 2 time 6 equals 12 points, because the highest of the two possible pairs are selected. The same throw yields 18 points (the sum of 2 times 3 and 2 times 6) when transferred to Two pairs. Note: When a throw containing four alike is transferred to Two pairs, it yields nil. The next to score-categories are respectively Small and Large. Small yields 15 points, if the five dices show 1, 2, 3, 4 and 5 in any order. Large yields 20 points when the ace in the just mentioned throw is replaced with a sixer. The category Full house demands, that the transferred throw consists of two of one kind and three of another kind. As an example a throw that consists of three aces and two fives yields the sum of 3 times 1 and 2 times 5 equals 13 point. Note: When a throw containing five alike is transferred to Full house, it yields nil. The following score-category is called Chance, and yields the sum of the dices transferred. When as an example a throw containing 1, 2, 3, 4 and 6 is transferred, it yields 16 points. Any throw transferred to Chance results in some points. The last score-category is the one naming the game: Yatzee. When five dices of the same kind are transferred, it yields 50 points, no matter what the dices show. ═══ 7. Local area network ═══ LAN is an acronym for Local Area Network. This stands for a number of stand-alone computers (clients) connected to a host-computer (server) via high-speed connections. The server-program of the Yatzee-game YASERVER.EXE) must be executed on the server-computer in the local area network, and the name of this computer must be entered when the client-program of the Yatzee-game (YATZYNET.EXE) is executed on the clients in the network. ═══ 8. The dices ═══ The game of Yatzee is played with five dices. Check rules for a more exhaustive explanation of their meaning. You are able to select or deselect a dice by clicking on it with mousebutton 1 (normally the left button). When a dice is deselected, it does not participate in the next throw. A deselected dice is marked with two crossing lines. You throw the dices by doubleclicking with mousebutton 1 on any dice. Note: The dice you doubleclicks is always selected and participates in the throw. Under certain circumstances the game does not allow that you manipulate the dices - for example when all three throws have been made. They are then greyed. Under other circumstances - when you have transferred a throw or reset the dices - you are not allowed to deselect dices. If you want to use the keyboard instead of the mouse for manipulating the dices, you can do that. See how in Keys help. ═══ 9. Acknowledgments ═══ This program is a result of work undertaken in the period of October to December 1990 by Peder Madsen. Different people have more or less contributed to the program and deserves to be mentioned: The server-program is based on an article in the IBM magazine Personal Systems Developer from winter 1990 entitled "A Multi-User Server Using Named Pipes". This article was written by Bryan Jackson from the company XcelleNet, Inc., Atlanta, USA. The development of the dices are inspired by an article from IBM Systems Journal vol. 29, No. 1, 1990 entitled "Effective application development for Presentation Manager programs" by Susan Franklin and Tony Peters. Inspiration has also come from a DOS-based version of the Yatzee-game written by BjЫrn Krogh. Thanks also to my wife Mette and my two daughters Vibe and Helene, who has spent many lonely nights, while I worked on this program. If you use this game, please send 20 USdollars to: Peder Madsen Dalgas Have 68, st. t.v. DK-2000 Frederiksberg Denmark, Europe You will then get the possibility of new versions or offerings of other programs that I make. Please direct comments and error reports to the above address. The program is free of charge (except as mentioned above) and you may copy the program freely. The program may not be sold or distributed commercially or otherwise for profit. I reserve all rights and priviligies to this program. Installation and use of this program is on your own responsibility. The author disclaims responsibility for any damage to your computer and its data. Please note, that I have done the translation from danish to english myself, and that it therefore might contain some errors. I will welcome any corrections. Copyright (c) 1990 by Peder Madsen. ═══ ═══ The score-board is the right part of a players child window. It constantly monitors the players score in each score-category. At the bottom there is a total, which at all times contains the sum of the players points. In this total, any bonus-points are included. The line with the bonus-category (the seventh from the top) can be in two different modes: When throws have been transferred to all the six upper categories, the bonus-line denotes any bonus. When not all the categories have received a throw, the bonus-line denotes the current status. A negative number means, that if bonus were to be settled now, none would be given. Zero or a positive number means, that bonus would be given. For futher information concerning the rules for getting bonus, check rules.