|
|
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.