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