|
|
1.1 root 1: #ifndef lint
2: static char sccsid[] = "@(#)init.c 4.1 12/24/82";
3: #endif
4:
5: # include "mille.h"
6:
7: init() {
8:
9: reg PLAY *pp;
10: reg int i, j;
11: reg CARD card;
12:
13: for (j = 0; j < C_RIGHT_WAY; j++)
14: Numseen[j] = 0;
15: Numgos = 0;
16:
17: for (i = 0; i < 2; i++) {
18: pp = &Player[i];
19: pp->hand[0] = C_INIT;
20: for (j = 0; j < NUM_SAFE; j++) {
21: pp->safety[j] = S_UNKNOWN;
22: pp->coups[j] = FALSE;
23: }
24: for (j = 1; j < HAND_SZ; j++) {
25: pp->hand[j] = *--Topcard;
26: if (i == COMP) {
27: account(card = *Topcard);
28: if (issafety(card))
29: pp->safety[card - S_CONV] = S_IN_HAND;
30: }
31: }
32: pp->mileage = 0;
33: pp->hand_tot = 0;
34: pp->safescore = 0;
35: pp->coupscore = 0;
36: pp->can_go = FALSE;
37: pp->speed = C_INIT;
38: pp->battle = C_INIT;
39: pp->new_speed = FALSE;
40: pp->new_battle = FALSE;
41: for (j = 0; j < NUM_MILES; j++)
42: pp->nummiles[j] = 0;
43: }
44: if (Order)
45: sort(Player[PLAYER].hand);
46: Discard = C_INIT;
47: Finished = FALSE;
48: End = 700;
49: }
50:
51: shuffle() {
52:
53: reg int i, r;
54: reg CARD temp;
55:
56: for (i = 0; i < DECK_SZ; i++) {
57: r = roll(1, DECK_SZ) - 1;
58: if (r < 0 || r > DECK_SZ - 1) {
59: fprintf(stderr, "shuffle: card no. error: %d\n", r);
60: die();
61: }
62: temp = Deck[r];
63: Deck[r] = Deck[i];
64: Deck[i] = temp;
65: }
66: Topcard = &Deck[DECK_SZ];
67: }
68:
69: newboard() {
70:
71: werase(Board);
72: werase(Score);
73: mvaddstr(5, 0, "--HAND--");
74: mvaddch(6, 0, 'P');
75: mvaddch(7, 0, '1');
76: mvaddch(8, 0, '2');
77: mvaddch(9, 0, '3');
78: mvaddch(10, 0, '4');
79: mvaddch(11, 0, '5');
80: mvaddch(12, 0, '6');
81: mvaddstr(13, 0, "--BATTLE--");
82: mvaddstr(15, 0, "--SPEED--");
83: mvaddstr(5, 20, "--DECK--");
84: mvaddstr(7, 20, "--DISCARD--");
85: mvaddstr(13, 20, "--BATTLE--");
86: mvaddstr(15, 20, "--SPEED--");
87: wmove(Miles, 0, 0);
88: if (winch(Miles) != '-') {
89: werase(Miles);
90: mvwaddstr(Miles, 0, 0, "--MILEAGE--");
91: mvwaddstr(Miles, 0, 41, "--MILEAGE--");
92: }
93: else {
94: wmove(Miles, 1, 0);
95: wclrtobot(Miles);
96: }
97: newscore();
98: stdscr = Board;
99: }
100:
101: newscore() {
102:
103: reg int i;
104:
105: stdscr = Score;
106: move(0, 22);
107: if (inch() != 'Y') {
108: erase();
109: mvaddstr(0, 22, "You Comp Value");
110: mvaddstr(1, 2, "Milestones Played");
111: mvaddstr(2, 8, "Each Safety");
112: mvaddstr(3, 5, "All 4 Safeties");
113: mvaddstr(4, 3, "Each Coup Fourre");
114: mvaddstr(2, 37, "100");
115: mvaddstr(3, 37, "300");
116: mvaddstr(4, 37, "300");
117: }
118: else {
119: move(5, 1);
120: clrtobot();
121: }
122: for (i = 0; i < SCORE_Y; i++)
123: mvaddch(i, 0, '|');
124: move(SCORE_Y - 1, 1);
125: while (addch('_') != ERR)
126: continue;
127: if (Window == W_FULL || Finished) {
128: mvaddstr(5, 5, "Trip Completed");
129: mvaddstr(6, 10, "Safe Trip");
130: mvaddstr(7, 5, "Delayed Action");
131: mvaddstr(8, 10, "Extension");
132: mvaddstr(9, 11, "Shut-Out");
133: mvaddstr(10, 21, "---- ---- -----");
134: mvaddstr(11, 9, "Hand Total");
135: mvaddstr(12, 20, "----- -----");
136: mvaddstr(13, 6, "Overall Total");
137: mvaddstr(14, 15, "Games");
138: mvaddstr(5, 37, "400");
139: mvaddstr(6, 37, "300");
140: mvaddstr(7, 37, "300");
141: mvaddstr(8, 37, "200");
142: mvaddstr(9, 37, "500");
143: }
144: else {
145: mvaddstr(5, 21, "---- ---- -----");
146: mvaddstr(6, 9, "Hand Total");
147: mvaddstr(7, 20, "----- -----");
148: mvaddstr(8, 6, "Overall Total");
149: mvaddstr(9, 15, "Games");
150: mvaddstr(11, 2, "p: pick");
151: mvaddstr(12, 2, "u: use #");
152: mvaddstr(13, 2, "d: discard #");
153: mvaddstr(14, 2, "w: toggle window");
154: mvaddstr(11, 21, "q: quit");
155: mvaddstr(12, 21, "o: order hand");
156: mvaddstr(13, 21, "s: save");
157: mvaddstr(14, 21, "r: reprint");
158: }
159: stdscr = Board;
160: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.