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