BSD 4_2 release
[unix-history] / usr / src / games / mille / extern.c
CommitLineData
8dd2ca95
C
1# include "mille.h"
2
0f4556f1
C
3/*
4 * @(#)extern.c 1.1 (Berkeley) 4/1/82
5 */
6
8dd2ca95
C
7bool Debug, /* set if debugging code on */
8 Finished, /* set if current hand is finished */
9 Next, /* set if changing players */
10 On_exit, /* set if game saved on exiting */
11 Order, /* set if hand should be sorted */
12 Saved; /* set if game just saved */
13
14char *C_fmt = "%-18.18s", /* format for printing cards */
15 *Fromfile = NULL, /* startup file for game */
16 Initstr[100], /* initial string for error field */
17 *_cn[NUM_CARDS] = { /* Card name buffer */
18 "",
19 "25",
20 "50",
21 "75",
22 "100",
23 "200",
24 "Out of Gas",
25 "Flat Tire",
26 "Accident",
27 "Stop",
28 "Speed Limit",
29 "Gasoline",
30 "Spare Tire",
31 "Repairs",
32 "Go",
33 "End of Limit",
34 "Extra Tank",
35 "Puncture Proof",
36 "Driving Ace",
37 "Right of Way"
38 },
39 **C_name = &_cn[1]; /* Card names */
40
41int Card_no, /* Card number for current move */
42 End, /* End value for current hand */
43 Handstart = COMP, /* Player who starts hand */
44 Movetype, /* Current move type */
45 Play, /* Current player */
46 Numgos, /* Number of Go cards used by computer */
47 Window = W_SMALL, /* Current window wanted */
48 Numseen[NUM_CARDS], /* Number of cards seen in current hand */
49 Value[NUM_MILES] = { /* Value of mileage cards */
50 25, 50, 75, 100, 200
51 },
52 Numcards[NUM_CARDS] = { /* Number of cards in deck */
53 10, /* C_25 */
54 10, /* C_50 */
55 10, /* C_75 */
56 12, /* C_100 */
57 4, /* C_200 */
58 2, /* C_EMPTY */
59 2, /* C_FLAT */
60 2, /* C_CRASH */
61 4, /* C_STOP */
62 3, /* C_LIMIT */
63 6, /* C_GAS */
64 6, /* C_SPARE */
65 6, /* C_REPAIRS */
66 14, /* C_GO */
67 6, /* C_END_LIMIT */
68 1, /* C_GAS_SAFE */
69 1, /* C_SPARE_SAFE */
70 1, /* C_DRIVE_SAFE */
71 1, /* C_RIGHT_WAY */
72 0 /* C_INIT */
73 };
74 Numneed[NUM_CARDS] = { /* number of cards needed per hand */
75 0, /* C_25 */
76 0, /* C_50 */
77 0, /* C_75 */
78 0, /* C_100 */
79 0, /* C_200 */
80 2, /* C_EMPTY */
81 2, /* C_FLAT */
82 2, /* C_CRASH */
83 4, /* C_STOP */
84 3, /* C_LIMIT */
85 2, /* C_GAS */
86 2, /* C_SPARE */
87 2, /* C_REPAIRS */
88 10, /* C_GO */
89 3, /* C_END_LIMIT */
90 1, /* C_GAS_SAFE */
91 1, /* C_SPARE_SAFE */
92 1, /* C_DRIVE_SAFE */
93 1, /* C_RIGHT_WAY */
94 0 /* C_INIT */
95 };
96
97CARD Discard, /* Top of discard pile */
98 *Topcard, /* Pointer to next card to be picked */
99 Opposite[NUM_CARDS] = { /* Opposites of each card */
100 C_25, C_50, C_75, C_100, C_200, C_GAS, C_SPARE,
101 C_REPAIRS, C_GO, C_END_LIMIT, C_EMPTY, C_FLAT, C_CRASH,
102 C_STOP, C_LIMIT, C_EMPTY, C_FLAT, C_CRASH, C_STOP, C_INIT
103 },
104 Deck[DECK_SZ] = { /* Current deck */
105 C_25, C_25, C_25, C_25, C_25, C_25, C_25, C_25, C_25, C_25,
106 C_50, C_50, C_50, C_50, C_50, C_50, C_50, C_50, C_50, C_50,
107 C_75, C_75, C_75, C_75, C_75, C_75, C_75, C_75, C_75, C_75,
108 C_100, C_100, C_100, C_100, C_100, C_100, C_100, C_100, C_100,
109 C_100, C_100, C_100,
110 C_200, C_200, C_200, C_200,
111 C_EMPTY, C_EMPTY,
112 C_FLAT, C_FLAT,
113 C_CRASH, C_CRASH,
114 C_STOP, C_STOP, C_STOP, C_STOP,
115 C_LIMIT, C_LIMIT, C_LIMIT,
116 C_GAS, C_GAS, C_GAS, C_GAS, C_GAS, C_GAS,
117 C_SPARE, C_SPARE, C_SPARE, C_SPARE, C_SPARE, C_SPARE,
118 C_REPAIRS, C_REPAIRS, C_REPAIRS, C_REPAIRS, C_REPAIRS,
119 C_REPAIRS,
120 C_END_LIMIT, C_END_LIMIT, C_END_LIMIT, C_END_LIMIT, C_END_LIMIT,
121 C_END_LIMIT,
122 C_GO, C_GO, C_GO, C_GO, C_GO, C_GO, C_GO, C_GO, C_GO, C_GO,
123 C_GO, C_GO, C_GO, C_GO,
124 C_GAS_SAFE, C_SPARE_SAFE, C_DRIVE_SAFE, C_RIGHT_WAY
125 };
126
127FILE *outf;
128
129PLAY Player[2]; /* Player descriptions */
130
131WINDOW *Board, /* Playing field screen */
132 *Miles, /* Mileage screen */
133 *Score; /* Score screen */