|
|
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: char copyright[] =
22: "@(#) Copyright (c) 1980 Regents of the University of California.\n\
23: All rights reserved.\n";
24: #endif /* not lint */
25:
26: #ifndef lint
27: static char sccsid[] = "@(#)teach.c 5.6 (Berkeley) 6/1/90";
28: #endif /* not lint */
29:
30: #include "back.h"
31:
32: char *hello[];
33: char *list[];
34: char *intro1[];
35: char *intro2[];
36: char *moves[];
37: char *remove[];
38: char *hits[];
39: char *endgame[];
40: char *doubl[];
41: char *stragy[];
42: char *prog[];
43: char *lastch[];
44:
45: extern char ospeed; /* tty output speed for termlib */
46:
47: char *helpm[] = {
48: "\nEnter a space or newline to roll, or",
49: " b to display the board",
50: " d to double",
51: " q to quit\n",
52: 0
53: };
54:
55: char *contin[] = {
56: "",
57: 0
58: };
59:
60: main (argc,argv)
61: int argc;
62: char **argv;
63:
64: {
65: register int i;
66:
67: signal (2,getout);
68: if (gtty (0,&tty) == -1) /* get old tty mode */
69: errexit ("teachgammon(gtty)");
70: old = tty.sg_flags;
71: #ifdef V7
72: raw = ((noech = old & ~ECHO) | CBREAK); /* set up modes */
73: #else
74: raw = ((noech = old & ~ECHO) | RAW); /* set up modes */
75: #endif
76: ospeed = tty.sg_ospeed; /* for termlib */
77: tflag = getcaps (getenv ("TERM"));
78: #ifdef V7
79: while (*++argv != 0)
80: #else
81: while (*++argv != -1)
82: #endif
83: getarg (&argv);
84: if (tflag) {
85: noech &= ~(CRMOD|XTABS);
86: raw &= ~(CRMOD|XTABS);
87: clear();
88: }
89: text (hello);
90: text (list);
91: i = text (contin);
92: if (i == 0)
93: i = 2;
94: init();
95: while (i)
96: switch (i) {
97:
98: case 1:
99: leave();
100:
101: case 2:
102: if (i = text(intro1))
103: break;
104: wrboard();
105: if (i = text(intro2))
106: break;
107:
108: case 3:
109: if (i = text(moves))
110: break;
111:
112: case 4:
113: if (i = text(remove))
114: break;
115:
116: case 5:
117: if (i = text(hits))
118: break;
119:
120: case 6:
121: if (i = text(endgame))
122: break;
123:
124: case 7:
125: if (i = text(doubl))
126: break;
127:
128: case 8:
129: if (i = text(stragy))
130: break;
131:
132: case 9:
133: if (i = text(prog))
134: break;
135:
136: case 10:
137: if (i = text(lastch))
138: break;
139: }
140: tutor();
141: }
142:
143: leave() {
144: if (tflag)
145: clear();
146: else
147: writec ('\n');
148: fixtty(old);
149: execl (EXEC,"backgammon",args,"n",0);
150: writel ("Help! Backgammon program is missing\007!!\n");
151: exit (-1);
152: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.