|
|
1.1 root 1: /*
2: * Copyright (c) 1980 Regents of the University of California.
3: * All rights reserved.
4: *
5: * Redistribution and use in source and binary forms are permitted
6: * provided that: (1) source distributions retain this entire copyright
7: * notice and comment, and (2) distributions including binaries display
8: * the following acknowledgement: ``This product includes software
9: * developed by the University of California, Berkeley and its contributors''
10: * in the documentation or other materials provided with the distribution
11: * and in all advertising materials mentioning features or use of this
12: * software. Neither the name of the University nor the names of its
13: * contributors may be used to endorse or promote products derived
14: * from this software without specific prior written permission.
15: * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
16: * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
17: * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
18: */
19:
20: #ifndef lint
21: static char sccsid[] = "@(#)ttext1.c 5.4 (Berkeley) 6/1/90";
22: #endif /* not lint */
23:
24: #include "back.h"
25:
26: char *opts = " QIMRHEDSPT";
27: char *prompt = "-->";
28:
29: char *list[] = {
30: "\n\n\tI\tIntroduction to Backgammon",
31: "\tM\tMoves and Points",
32: "\tR\tRemoving Men from the Board",
33: "\tH\tHitting Blots",
34: "\tE\tEnding the Game and Scoring",
35: "\tD\tDoubling",
36: "\tS\tStrategy",
37: "\tP\tThe Program and How to Use It",
38: "\nalso, you can type:",
39: "\t?\tto get this list",
40: "\tQ\tto go start playing",
41: "\tT\tto go straight to the tutorial",
42: 0
43: };
44:
45: char *hello[] = {
46: "\n\032 These rules consist of text describing how to play Backgammon",
47: "followed by a tutorial session where you play a practice game",
48: "against the computer. When using this program, think carefuly",
49: "before typing, since it reacts as soon as you type something. In",
50: "addition, the program presents text output, such as these rules,",
51: "in small blocks that will not roll off the top of the screen.",
52: "Frequently, you will see the characters '-->' indicating that the",
53: "program is waiting for you to finish reading, and will continue",
54: "printing when you type a space or newline. Also, the rules are",
55: "divided into sections, and although you should read them in or-",
56: "der, you can go directly to any of them by typing one of the fol-",
57: "lowing letters:",
58: "(Remember to hit a space or a newline to continue.)",
59: "",
60: 0
61: };
62:
63: char *intro1[] = {
64: "\nIntroduction:",
65: "\n Backgammon is a game involving the skill of two players and",
66: "the luck of two dice. There are two players, red and white, and",
67: "each player gets fifteen men. The object of the game is to re-",
68: "move all your men from the board before the opponent does. The",
69: "board consists of twenty-four positions, a 'bar' and a 'home' for",
70: "each player. It looks like this:",
71: "",
72: 0};
73:
74: char *intro2[] = {
75: "",
76: "\n Although not indicated on the board, the players' homes are",
77: "located just to the right of the board. A player's men are placed",
78: "there when they are removed from the board. The board you just",
79: "saw was in it's initial position. All games start with the board",
80: "looking like this. Notice that red's pieces are represented by the",
81: "letter 'r' and white's pieces are represented by the letter 'w'.",
82: "Also, a position may have zero or more pieces on it, e.g. posi-",
83: "tion 12 has five red pieces on it, while position 11 does not",
84: "have any pieces of either color.",
85: "",
86: 0};
87:
88: char *moves[] = {
89: "\nMoves and Points:",
90: "\n Moves are made along the positions on the board according to",
91: "their numbers. Red moves in the positive direction (clockwise",
92: "from 1 to 24), and white moves in the negative direction (coun-",
93: "terclockwise from 24 to 1).",
94: "\n A turn consists of rolling the dice, and moving the number of",
95: "positions indicated on each die. The two numbers can be used to",
96: "move one man the sum of the two rolls, or two men the number on",
97: "each individual die. For example, if red rolled 6 3 at the start",
98: "of the game, he might move a man from 1 to 7 to 10, using both",
99: "dice for one man, or he might move two men from position 12, one",
100: "to 15 and one to 18. (Red did not have to choose two men start-",
101: "ing from the same position.) In addition, doubles are treated",
102: "specially in backgammon. When a player rolls doubles, he gets to",
103: "move as if he had four dice instead of two. For instance, if you",
104: "rolled double 2's, you could move one man eight positions, four",
105: "men two positions each, or any permutation in between.",
106: "",
107: "\n However, there are certain limitations, called 'points.' A",
108: "player has a point when he has two or more men on the same posi-",
109: "tion. This gives him custody of that position, and his opponent",
110: "cannot place his men there, even if passing through on the way to",
111: "another position. When a player has six points in a row, it is",
112: "called a 'wall,' since any of his opponent's men behind the wall",
113: "cannot pass it and are trapped, at least for the moment. Notice",
114: "that this could mean that a player could not use part or all of",
115: "his roll. However, he must use as much of his roll as possible.",
116: "",
117: 0};
118:
119: char *remove[] = {
120: "\nRemoving Men from the Board:",
121: "\n The most important part of the game is removing men, since",
122: "that is how you win the game. Once a man is removed, he stays",
123: "off the board for the duration of the game. However, a player",
124: "cannot remove men until all his men are on his 'inner table,' or",
125: "the last six positions of the board (19-24 for red, 6-1 for",
126: "white).",
127: "\n To get off the board, a player must roll the exact number to",
128: "get his man one position past the last position on the board, or",
129: "his 'home.' Hence, if red wanted to remove a man from position",
130: "23, he would have to roll a 2, anything else would be used for",
131: "another man, or for another purpose. However, there is one ex-",
132: "ception. If the player rolling has no men far enough to move the",
133: "roll made, he may move his farthest man off the board. For exam-",
134: "ple, if red's farthest man back was on position 21, he could re-",
135: "move men from that position if he rolled a 5 or a 6, as well as a",
136: "4. Since he does not have men on 20 (where he could use a 5) or",
137: "on 19 (where he could use a 6), he can use these rolls for posi-",
138: "tion 21. A player never has to remove men, but he must make as",
139: "many moves as possible.",
140: "",
141: 0};
142:
143: char *hits[] = {
144: "\nHitting Blots:",
145: "\n Although two men on a position form an impenetrable point, a",
146: "lone man is not so secure. Such a man is called a 'blot' and has",
147: "the potential of getting hit by an opposing man. When a player's",
148: "blot is hit, he is placed on the bar, and the first thing that",
149: "player must do is move the man off the bar. Such moves are",
150: "counted as if the bar is one position behind the first position",
151: "on the board. Thus if red has a man on the bar and rolls 2 3, he",
152: "must move the man on the bar to position 2 or 3 before moving any",
153: "other man. If white had points on positions 2 and 3, then red",
154: "would forfeit his turn. Being on the bar is a very bad position,",
155: "for often a player can lose many turns trying to move off the",
156: "bar, as well as being set back the full distance of the board.",
157: "",
158: 0};
159:
160: char *endgame[] = {
161: "\nEnding the Game and Scoring:",
162: "\n Winning a game usually wins one point, the normal value of a",
163: "game. However, if the losing player has not removed any men yet,",
164: "then the winning player wins double the game value, called a",
165: "'gammon.' If the losing player has a player on the bar or on the",
166: "winner's inner table, then the winner gets triple the game value,",
167: "which is called a 'backgammon.' (So that's where the name comes",
168: "from!)",
169: "",
170: 0};
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.