1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32: #include <sys/cdefs.h>
33: #ifndef lint
34: #if 0
35: static char sccsid[] = "@(#)jail.c 8.1 (Berkeley) 5/31/93";
36: #else
37: __RCSID("$NetBSD: jail.c,v 1.6 2003/08/07 09:37:28 agc Exp $");
38: #endif
39: #endif
40:
41: #include "monop.ext"
42:
43:
44:
45:
46:
47: void
48: card()
49: {
50: if (cur_p->loc != JAIL) {
51: printf("But you're not IN Jail\n");
52: return;
53: }
54: if (cur_p->num_gojf == 0) {
55: printf("But you don't HAVE a get out of jail free card\n");
56: return;
57: }
58: ret_card(cur_p);
59: cur_p->loc = 10;
60: cur_p->in_jail = 0;
61: }
62:
63:
64:
65:
66:
67: void
68: ret_card(plr)
69: PLAY *plr;
70: {
71: plr->num_gojf--;
72: if (CC_D.gojf_used)
73: CC_D.gojf_used = FALSE;
74: else
75: CH_D.gojf_used = FALSE;
76: }
77:
78:
79:
80:
81: void
82: pay()
83: {
84: if (cur_p->loc != JAIL) {
85: printf("But you're not IN Jail\n");
86: return;
87: }
88: cur_p->loc = 10;
89: cur_p->money -= 50;
90: cur_p->in_jail = 0;
91: printf("That cost you $50\n");
92: }
93:
94:
95:
96:
97: int
98: move_jail(r1, r2)
99: int r1, r2;
100: {
101: if (r1 != r2) {
102: printf("Sorry, that doesn't get you out\n");
103: if (++(cur_p->in_jail) == 3) {
104: printf("It's your third turn and you didn't roll "
105: "doubles. You have to pay $50\n");
106: cur_p->money -= 50;
107: moveit:
108: cur_p->loc = 10;
109: cur_p->in_jail = 0;
110: move(r1+r2);
111: r1 = r2 - 1;
112: return TRUE;
113: }
114: return FALSE;
115: }
116: else {
117: printf("Double roll gets you out.\n");
118: goto moveit;
119: }
120: }
121:
122: void
123: printturn()
124: {
125: if (cur_p->loc != JAIL)
126: return;
127: printf("(This is your ");
128: switch (cur_p->in_jail) {
129: case 0:
130: printf("1st");
131: break;
132: case 1:
133: printf("2nd");
134: break;
135: case 2:
136: printf("3rd (and final)");
137: break;
138: }
139: printf(" turn in JAIL)\n");
140: }