summaryrefslogtreecommitdiff
path: root/games/backgammon/teachgammon/ttext2.c
diff options
context:
space:
mode:
authorPaul Janzen <pjanzen@cvs.openbsd.org>1998-03-19 11:13:38 +0000
committerPaul Janzen <pjanzen@cvs.openbsd.org>1998-03-19 11:13:38 +0000
commit4d7669b40d9f9abcc2aaa60ab11c06aa405f9c28 (patch)
treed043e0042f2e0bf39910774f8a21bfdbbef8a79a /games/backgammon/teachgammon/ttext2.c
parent3cbc204cbaf2ade4f1b67ceaf65c9a6822db4f91 (diff)
NetBSD changes and further improvements and corrections
Diffstat (limited to 'games/backgammon/teachgammon/ttext2.c')
-rw-r--r--games/backgammon/teachgammon/ttext2.c260
1 files changed, 129 insertions, 131 deletions
diff --git a/games/backgammon/teachgammon/ttext2.c b/games/backgammon/teachgammon/ttext2.c
index afb431c171f..6c6a6e312bf 100644
--- a/games/backgammon/teachgammon/ttext2.c
+++ b/games/backgammon/teachgammon/ttext2.c
@@ -1,4 +1,4 @@
-/* $NetBSD: ttext2.c,v 1.4 1995/04/29 00:44:20 mycroft Exp $ */
+/* $OpenBSD: ttext2.c,v 1.2 1998/03/19 11:13:34 pjanzen Exp $ */
/*
* Copyright (c) 1980, 1993
@@ -37,163 +37,161 @@
#if 0
static char sccsid[] = "@(#)ttext2.c 8.1 (Berkeley) 5/31/93";
#else
-static char rcsid[] = "$NetBSD: ttext2.c,v 1.4 1995/04/29 00:44:20 mycroft Exp $";
+static char rcsid[] = "$OpenBSD: ttext2.c,v 1.2 1998/03/19 11:13:34 pjanzen Exp $";
#endif
#endif /* not lint */
#include "back.h"
+#include "tutor.h"
-char *prompt, *list, *opts;
+char *doubl[] = {
+ "\nDoubling:",
+ "\n If a player thinks he is in a good position, he may double the",
+ "value of the game. However, his opponent may not accept the proposal",
+ "and can forfeit the game before the price gets too high. A player",
+ "must double before he rolls, and once his double has been accepted,",
+ "he cannot double again until his opponent has doubled. Thus, unless",
+ "the game swings back and forth in advantage between the two players",
+ "a great deal, the value of the game should be low. At any rate,",
+ "the value of the game can never go above 64, or six doubles.",
+ "However, if a player wins a backgammon at 64 points, he wins 192",
+ "points!",
+ "",
+ 0};
-char *doubl[] = {
- "\nDoubling:",
- "\n If a player thinks he is in a good position, he may double the",
- "value of the game. However, his opponent may not accept the pro-",
- "posal and forfeit the game before the price gets too high. A",
- "player must double before he rolls, and once his double has been",
- "accepted, he cannot double again, until his opponent has doubled.",
- "Thus, unless the game swings back and forth in advantage between",
- "the two players a great deal, the value of the game should be",
- "low. At any rate, the value of the game will never go above 64,",
- "or six doubles. However, if a player wins a backgammon at 64",
- "points, he wins 192 points!",
- "",
- 0};
+char *stragy[] = {
+ "\nStrategy:",
+ "\n Some general hints when playing: Try not to leave men open:",
+ "it is good to make as many points as possible. Often, two men",
+ "from different positions can be brought together to form a new",
+ "point. Although walls (six points in a row) are difficult to form,",
+ "many points nestled closely together still produce a formidable",
+ "barrier. Also, while it is good to move back men forward, doing",
+ "so lessens the opportunity for you to hit the opponent's blots.",
+ "Finally, remember that once the two player's men have passed each other",
+ "on the board, there is no chance of either side being hit, so the",
+ "game reduces to a race off the board. Additional hints on strategy",
+ "are presented in the practice game.",
+ "",
+ 0};
-char *stragy[] = {
- "\nStrategy:",
- "\n Some general hints when playing: Try not to leave men open",
- "unless absolutely necessary. Also, it is good to make as many",
- "points as possible. Often, two men from different positions can",
- "be brought together to form a new point. Although walls (six",
- "points in a row) are difficult to form, many points nestled close-",
- "ly together produce a formidable barrier. Also, while it is good",
- "to move back men forward, doing so lessens the opportunity for you",
- "to hit men. Finally, remember that once the two player's have",
- "passed each other on the board, there is no chance of either team",
- "being hit, so the game reduces to a race off the board. Addi-",
- "tional hints on strategy are presented in the practice game.",
- "",
- 0};
-
-char *prog[] = {
- "\nThe Program and How It Works:",
- "\n A general rule of thumb is when you don't know what to do,",
- "type a question mark, and you should get some help. When it is",
- "your turn, only your color will be printed out, with nothing",
- "after it. You may double by typing a 'd', but if you type a",
- "space or newline, you will get your roll. (Remember, you must",
- "double before you roll.) Also, typing a 'r' will reprint the",
- "board, and a 'q' will quit the game. The program will type",
- "'Move:' when it wants your move, and you may indicate each die's",
- "move with <s>-<f>, where <s> is the starting position and <f> is",
- "the finishing position, or <s>/<r> where <r> is the roll made.",
- "<s>-<f1>-<f2> is short for <s>-<f1>,<f1>-<f2> and <s>/<r1><r2> is",
- "short for <s>/<r1>,<s>/<r2>. Moves may be separated by a comma",
- "or a space.",
- "",
- "\n While typing, any input which does not make sense will not be",
- "echoed, and a bell will sound instead. Also, backspacing and",
- "killing lines will echo differently than normal. You may examine",
- "the board by typing a 'r' if you have made a partial move, or be-",
- "fore you type a newline, to see what the board looks like. You",
- "must end your move with a newline. If you cannot double, your",
- "roll will always be printed, and you will not be given the oppor-",
- "tunity to double. Home and bar are represented by the appropri-",
- "ate number, 0 or 25 as the case may be, or by the letters 'h' or",
- "'b' as appropriate. You may also type 'r' or 'q' when the program",
- "types 'Move:', which has the same effect as above. Finally, you",
- "will get to decide if you want to play red or white (or both if you",
- "want to play a friend) at the beginning of the session, and you",
- "will not get to change your mind later, since the computer keeps",
- "score.",
- "",
- 0};
+char *prog[] = {
+ "\nThe Program and How It Works:",
+ "\n A general rule of thumb is to type a question mark if you",
+ "don't know what to do: you should get some help. When it is your",
+ "turn, only your color will be printed out, with nothing after it.",
+ "You may double by typing `d', but if you type a space or newline,",
+ "you will get your roll. (Remember, you must double before you",
+ "roll.) Also, typing `r' will reprint the board, and typing `q'",
+ "will quit the game. The program will print 'Move:' when it wants",
+ "your move. You may indicate each die's move with <s>-<f>, where",
+ "<s> is the starting position and <f> is the finishing position, or",
+ "<s>/<r> where <r> is the roll made. <s>-<f1>-<f2> is short for",
+ "<s>-<f1>,<f1>-<f2> and <s>/<r1><r2> is short for <s>/<r1>,<s>/<r2>.",
+ "Moves may be separated by a comma or a space.",
+ "",
+ "\n Any input which does not make sense will not be echoed; instead,",
+ "a bell will sound. Backspacing and killing lines may echo differently",
+ "than usual. You may examine the board by typing `r' if you have",
+ "made a partial move or before you type a newline to see what the",
+ "board will look like. You must end your move with a newline. If",
+ "you cannot double, your roll will be printed and you will not be",
+ "given the opportunity to double. Home and bar can be represented",
+ "by the appropriate number, 0 or 25 as the case may be, or by the",
+ "letters `h' or `b' as appropriate. You may also type `r' or `q'",
+ "when the program prints 'Move:' to redraw the screen or quit the",
+ "game. At the beginning of the session, you will get to decide if",
+ "you want to play red or white (or both if you want to play a friend),",
+ "and you will not get to change your mind later, since the computer",
+ "keeps a running score.",
+ "",
+ 0};
-char *lastch[] = {
- "\nTutorial (Practice Game):",
- "\n This tutorial, for simplicity's sake, will let you play one",
- "predetermined game. All the rolls have been pre-arranged, and",
- "only one response will let you advance to the next move.",
- "Although a given roll will may have several legal moves, the tu-",
- "torial will only accept one (not including the same moves in a",
- "different order), claiming that that move is 'best.' Obviously,",
- "a subjective statement. At any rate, be patient with it and have",
- "fun learning about backgammon. Also, to speed things up a lit-",
- "tle, doubling will not take place in the tutorial, so you will",
- "never get that opportunity, and quitting only leaves the tutori-",
- "al, not the game. You will still be able to play backgammon",
- "after quitting.",
- "\n This is your last chance to look over the rules before the tu-",
- "torial starts.",
- "",
- 0};
-
-text (txt)
-char **txt;
+char *lastch[] = {
+ "\nTutorial (Practice Game):",
+ "\n This tutorial, for simplicity's sake, will let you play one",
+ "predetermined game. All the rolls have been pre-arranged, and",
+ "only one response will let you advance to the next move. Although",
+ "a given roll will may have several legal moves, the tutorial will",
+ "only accept one (not including the same moves in a different order),",
+ "claiming that that move is 'best'--obviously, a subjective statement.",
+ "At any rate, be patient with it and have fun learning about",
+ "backgammon. To speed things up a little, doubling will not",
+ "take place in the tutorial. Quitting the tutorial leaves only",
+ "the tutorial; you will still be able to play a real backgammon",
+ "game after quitting.",
+ "\n This is your last chance to look over the rules before the",
+ "tutorial starts.",
+ "",
+ 0};
+int
+text(txt)
+ char **txt;
{
- char **begin;
- char *a;
- char b;
- char *c;
- int i;
+ char **begin;
+ char *a;
+ char b;
+ char *c;
+ int i;
- fixtty (&noech);
+ fixtty(&noech);
begin = txt;
- while (*txt) {
+ while (*txt) {
a = *(txt++);
- if (*a != '\0') {
+ if (*a != '\0') {
c = a;
for (i = 0; *(c++) != '\0'; i--);
- writel (a);
- writec ('\n');
- } else {
- fixtty (&raw);
- writel (prompt);
- for (;;) {
- if ((b = readc()) == '?') {
- if (tflag) {
- if (begscr) {
- curmove (18,0);
- clend();
- } else
+ writel(a);
+ writec('\n');
+ } else {
+ fixtty(&raw);
+ writel(prompt);
+ /* if begscr is set we're past the rules screens */
+ if (!begscr) {
+ for (;;) {
+ if ((b = readc()) == '?') {
+ if (tflag)
clear();
- } else
- writec ('\n');
- text (list);
- writel (prompt);
- continue;
- }
- i = 0;
- if (b == '\n')
- break;
- while (i < 11) {
- if (b == opts[i])
+ else
+ writec('\n');
+ text(list);
+ writel(prompt);
+ continue;
+ }
+ i = 0;
+ if (b == '\n')
+ break;
+ while (i < 11) {
+ if (b == opts[i])
+ break;
+ i++;
+ }
+ if (i == 11)
+ writec('\007');
+ else
break;
- i++;
}
- if (i == 11)
- writec ('\007');
- else
- break;
+ } else {
+ b = readc();
+ i = 0;
}
- if (tflag) {
- if (begscr) {
- curmove (18,0);
+ if (tflag) {
+ if (begscr) {
+ curmove(18, 0);
clend();
} else
clear();
} else
- writec ('\n');
+ writec('\n');
if (i)
return(i);
- fixtty (&noech);
+ fixtty(&noech);
if (tflag)
- curmove (curr,0);
+ curmove(curr, 0);
begin = txt;
}
}
- fixtty (&raw);
- return (0);
+ fixtty(&raw);
+ return(0);
}