|
|
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 the above copyright notice and this paragraph are
7: * duplicated in all such forms and that any documentation,
8: * advertising materials, and other materials related to such
9: * distribution and use acknowledge that the software was developed
10: * by the University of California, Berkeley. The name of the
11: * University may not be used to endorse or promote products derived
12: * from this software without specific prior written permission.
13: * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
14: * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
15: * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
16: */
17:
18: #ifndef lint
19: static char sccsid[] = "@(#)jail.c 5.2 (Berkeley) 6/18/88";
20: #endif /* not lint */
21:
22: # include "monop.ext"
23:
24: /*
25: * This routine uses a get-out-of-jail-free card to get the
26: * player out of jail.
27: */
28: card() {
29:
30: if (cur_p->loc != JAIL) {
31: printf("But you're not IN Jail\n");
32: return;
33: }
34: if (cur_p->num_gojf == 0) {
35: printf("But you don't HAVE a get out of jail free card\n");
36: return;
37: }
38: ret_card(cur_p);
39: cur_p->loc = 10; /* just visiting */
40: cur_p->in_jail = 0;
41: }
42: /*
43: * This routine returns the players get-out-of-jail-free card
44: * to a deck.
45: */
46: ret_card(plr)
47: reg PLAY *plr; {
48:
49: plr->num_gojf--;
50: if (CC_D.gojf_used)
51: CC_D.gojf_used = FALSE;
52: else
53: CH_D.gojf_used = FALSE;
54: }
55: /*
56: * This routine deals with paying your way out of jail.
57: */
58: pay() {
59:
60: if (cur_p->loc != JAIL) {
61: printf("But you're not IN Jail\n");
62: return;
63: }
64: cur_p->loc = 10;
65: cur_p->money -= 50;
66: cur_p->in_jail = 0;
67: printf("That cost you $50\n");
68: }
69: /*
70: * This routine deals with a move in jail
71: */
72: move_jail(r1, r2)
73: reg int r1, r2; {
74:
75: if (r1 != r2) {
76: printf("Sorry, that doesn't get you out\n");
77: if (++(cur_p->in_jail) == 3) {
78: printf("It's your third turn and you didn't roll doubles. You have to pay $50\n");
79: cur_p->money -= 50;
80: moveit:
81: cur_p->loc = 10;
82: cur_p->in_jail = 0;
83: move(r1+r2);
84: r1 = r2 - 1; /* kludge: stop new roll w/doub */
85: return TRUE;
86: }
87: return FALSE;
88: }
89: else {
90: printf("Double roll gets you out.\n");
91: goto moveit;
92: }
93: }
94: printturn() {
95:
96: if (cur_p->loc != JAIL)
97: return;
98: printf("(This is your ");
99: switch (cur_p->in_jail) {
100: case 0:
101: printf("1st");
102: break;
103: case 1:
104: printf("2nd");
105: break;
106: case 2:
107: printf("3rd (and final)");
108: break;
109: }
110: printf(" turn in JAIL)\n");
111: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.