|
|
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[] = "@(#)print.c 5.3 (Berkeley) 6/18/88"; ! 20: #endif /* not lint */ ! 21: ! 22: # include "monop.ext" ! 23: ! 24: static char buf[80], /* output buffer */ ! 25: *header = "Name Own Price Mg # Rent"; ! 26: ! 27: /* ! 28: * This routine prints out the current board ! 29: */ ! 30: printboard() { ! 31: ! 32: reg int i; ! 33: ! 34: printf("%s\t%s\n", header, header); ! 35: for (i = 0; i < N_SQRS/2; i++) { ! 36: printsq(i, FALSE); ! 37: putchar('\t'); ! 38: printsq(i+N_SQRS/2, TRUE); ! 39: } ! 40: } ! 41: /* ! 42: * This routine lists where each player is. ! 43: */ ! 44: where() { ! 45: ! 46: reg int i; ! 47: char *bsp; ! 48: ! 49: printf("%s Player\n", header); ! 50: for (i = 0; i < num_play; i++) { ! 51: printsq(play[i].loc, FALSE); ! 52: printf(" %s (%d)", play[i].name, i+1); ! 53: if (cur_p == &play[i]) ! 54: printf(" *"); ! 55: putchar('\n'); ! 56: } ! 57: } ! 58: /* ! 59: * This routine prints out an individual square ! 60: */ ! 61: printsq(sqn, eoln) ! 62: int sqn; ! 63: reg bool eoln; { ! 64: ! 65: reg int rnt; ! 66: reg PROP *pp; ! 67: reg SQUARE *sqp; ! 68: int i; ! 69: ! 70: sqp = &board[sqn]; ! 71: printf("%-10.10s", sqp->name); ! 72: switch (sqp->type) { ! 73: case SAFE: ! 74: case CC: ! 75: case CHANCE: ! 76: case INC_TAX: ! 77: case GOTO_J: ! 78: case LUX_TAX: ! 79: case IN_JAIL: ! 80: spec: ! 81: if (!eoln) ! 82: printf(" "); ! 83: break; ! 84: case PRPTY: ! 85: pp = sqp->desc; ! 86: if (sqp->owner < 0) { ! 87: printf(" - %-8.8s %3d", pp->mon_desc->name, sqp->cost); ! 88: if (!eoln) ! 89: printf(" "); ! 90: break; ! 91: } ! 92: printf(" %d %-8.8s %3d", sqp->owner+1, pp->mon_desc->name, ! 93: sqp->cost); ! 94: printmorg(sqp); ! 95: if (pp->monop) { ! 96: if (pp->houses < 5) ! 97: if (pp->houses > 0) ! 98: printf("%d %4d", pp->houses, ! 99: pp->rent[pp->houses]); ! 100: else ! 101: printf("0 %4d", pp->rent[0] * 2); ! 102: else ! 103: printf("H %4d", pp->rent[5]); ! 104: } ! 105: else ! 106: printf(" %4d", pp->rent[0]); ! 107: break; ! 108: case UTIL: ! 109: if (sqp->owner < 0) { ! 110: printf(" - 150"); ! 111: if (!eoln) ! 112: printf(" "); ! 113: break; ! 114: } ! 115: printf(" %d 150", sqp->owner+1); ! 116: printmorg(sqp); ! 117: printf("%d", play[sqp->owner].num_util); ! 118: if (!eoln) ! 119: printf(" "); ! 120: break; ! 121: case RR: ! 122: if (sqp->owner < 0) { ! 123: printf(" - Railroad 200"); ! 124: if (!eoln) ! 125: printf(" "); ! 126: break; ! 127: } ! 128: printf(" %d Railroad 200", sqp->owner+1); ! 129: printmorg(sqp); ! 130: rnt = 25; ! 131: rnt <<= play[sqp->owner].num_rr - 1; ! 132: printf("%d %4d", play[sqp->owner].num_rr, 25 << (play[sqp->owner].num_rr - 1)); ! 133: break; ! 134: } ! 135: if (eoln) ! 136: putchar('\n'); ! 137: } ! 138: /* ! 139: * This routine prints out the mortgage flag. ! 140: */ ! 141: printmorg(sqp) ! 142: reg SQUARE *sqp; { ! 143: ! 144: if (sqp->desc->morg) ! 145: printf(" * "); ! 146: else ! 147: printf(" "); ! 148: } ! 149: /* ! 150: * This routine lists the holdings of the player given ! 151: */ ! 152: printhold(pl) ! 153: reg int pl; { ! 154: ! 155: reg OWN *op; ! 156: reg PLAY *pp; ! 157: char *bsp; ! 158: ! 159: pp = &play[pl]; ! 160: printf("%s's (%d) holdings (Total worth: $%d):\n", name_list[pl], pl+1, ! 161: pp->money + prop_worth(pp)); ! 162: printf("\t$%d", pp->money); ! 163: if (pp->num_gojf) { ! 164: printf(", %d get-out-of-jail-free card", pp->num_gojf); ! 165: if (pp->num_gojf > 1) ! 166: putchar('s'); ! 167: } ! 168: putchar('\n'); ! 169: if (pp->own_list) { ! 170: printf("\t%s\n", header); ! 171: for (op = pp->own_list; op; op = op->next) { ! 172: putchar('\t'); ! 173: printsq(sqnum(op->sqr), TRUE); ! 174: } ! 175: } ! 176: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.