Annotation of 43BSDTahoe/games/monop/print.c, revision 1.1

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: }

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.