Annotation of 42BSD/games/monop/jail.c, revision 1.1.1.1

1.1       root        1: # include      "monop.ext"
                      2: 
                      3: /*
                      4:  *     This routine uses a get-out-of-jail-free card to get the
                      5:  * player out of jail.
                      6:  */
                      7: card() {
                      8: 
                      9:        if (cur_p->loc != JAIL) {
                     10:                printf("But you're not IN Jail\n");
                     11:                return;
                     12:        }
                     13:        if (cur_p->num_gojf == 0) {
                     14:                printf("But you don't HAVE a get out of jail free card\n");
                     15:                return;
                     16:        }
                     17:        ret_card(cur_p);
                     18:        cur_p->loc = 10;                        /* just visiting        */
                     19:        cur_p->in_jail = 0;
                     20: }
                     21: /*
                     22:  *     This routine returns the players get-out-of-jail-free card
                     23:  * to a deck.
                     24:  */
                     25: ret_card(plr)
                     26: reg PLAY       *plr; {
                     27: 
                     28:        plr->num_gojf--;
                     29:        if (CC_D.gojf_used)
                     30:                CC_D.gojf_used = FALSE;
                     31:        else
                     32:                CH_D.gojf_used = FALSE;
                     33: }
                     34: /*
                     35:  *     This routine deals with paying your way out of jail.
                     36:  */
                     37: pay() {
                     38: 
                     39:        if (cur_p->loc != JAIL) {
                     40:                printf("But you're not IN Jail\n");
                     41:                return;
                     42:        }
                     43:        cur_p->loc = 10;
                     44:        cur_p->money -= 50;
                     45:        cur_p->in_jail = 0;
                     46:        printf("That cost you $50\n");
                     47: }
                     48: /*
                     49:  *     This routine deals with a move in jail
                     50:  */
                     51: move_jail(r1, r2)
                     52: reg int        r1, r2; {
                     53: 
                     54:        if (r1 != r2) {
                     55:                printf("Sorry, that doesn't get you out\n");
                     56:                if (++(cur_p->in_jail) == 3) {
                     57:                        printf("It's your third turn and you didn't roll doubles.  You have to pay $50\n");
                     58:                        cur_p->money -= 50;
                     59: moveit:
                     60:                        cur_p->loc = 10;
                     61:                        cur_p->in_jail = 0;
                     62:                        move(r1+r2);
                     63:                        r1 = r2 - 1;    /* kludge: stop new roll w/doub */
                     64:                        return TRUE;
                     65:                }
                     66:                return FALSE;
                     67:        }
                     68:        else {
                     69:                printf("Double roll gets you out.\n");
                     70:                goto moveit;
                     71:        }
                     72: }
                     73: printturn() {
                     74: 
                     75:        if (cur_p->loc != JAIL)
                     76:                return;
                     77:        printf("(This is your ");
                     78:        switch (cur_p->in_jail) {
                     79:          case 0:
                     80:                printf("1st");
                     81:                break;
                     82:          case 1:
                     83:                printf("2nd");
                     84:                break;
                     85:          case 2:
                     86:                printf("3rd (and final)");
                     87:                break;
                     88:        }
                     89:        printf(" turn in JAIL)\n");
                     90: }

unix.superglobalmegacorp.com

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