Annotation of 42BSD/games/mille/init.c, revision 1.1.1.1

1.1       root        1: # include      "mille.h"
                      2: 
                      3: /*
                      4:  * @(#)init.c  1.1 (Berkeley) 4/1/82
                      5:  */
                      6: 
                      7: init() {
                      8: 
                      9:        reg PLAY        *pp;
                     10:        reg int         i, j;
                     11:        reg CARD        card;
                     12: 
                     13:        for (j = 0; j < C_RIGHT_WAY; j++)
                     14:                Numseen[j] = 0;
                     15:        Numgos = 0;
                     16: 
                     17:        for (i = 0; i < 2; i++) {
                     18:                pp = &Player[i];
                     19:                pp->hand[0] = C_INIT;
                     20:                for (j = 0; j < NUM_SAFE; j++) {
                     21:                        pp->safety[j] = S_UNKNOWN;
                     22:                        pp->coups[j] = FALSE;
                     23:                }
                     24:                for (j = 1; j < HAND_SZ; j++) {
                     25:                        pp->hand[j] = *--Topcard;
                     26:                        if (i == COMP) {
                     27:                                account(card = *Topcard);
                     28:                                if (issafety(card))
                     29:                                        pp->safety[card - S_CONV] = S_IN_HAND;
                     30:                        }
                     31:                }
                     32:                pp->mileage = 0;
                     33:                pp->hand_tot = 0;
                     34:                pp->safescore = 0;
                     35:                pp->coupscore = 0;
                     36:                pp->can_go = FALSE;
                     37:                pp->speed = C_INIT;
                     38:                pp->battle = C_INIT;
                     39:                pp->new_speed = FALSE;
                     40:                pp->new_battle = FALSE;
                     41:                for (j = 0; j < NUM_MILES; j++)
                     42:                        pp->nummiles[j] = 0;
                     43:        }
                     44:        if (Order)
                     45:                sort(Player[PLAYER].hand);
                     46:        Discard = C_INIT;
                     47:        Finished = FALSE;
                     48:        End = 700;
                     49: }
                     50: 
                     51: shuffle() {
                     52: 
                     53:        reg int         i, r;
                     54:        reg CARD        temp;
                     55: 
                     56:        for (i = 0; i < DECK_SZ; i++) {
                     57:                r = roll(1, DECK_SZ) - 1;
                     58:                if (r < 0 || r > DECK_SZ - 1) {
                     59:                        fprintf(stderr, "shuffle: card no. error: %d\n", r);
                     60:                        die();
                     61:                }
                     62:                temp = Deck[r];
                     63:                Deck[r] = Deck[i];
                     64:                Deck[i] = temp;
                     65:        }
                     66:        Topcard = &Deck[DECK_SZ];
                     67: }
                     68: 
                     69: newboard() {
                     70: 
                     71:        werase(Board);
                     72:        werase(Score);
                     73:        mvaddstr(5, 0, "--HAND--");
                     74:        mvaddch(6, 0, 'P');
                     75:        mvaddch(7, 0, '1');
                     76:        mvaddch(8, 0, '2');
                     77:        mvaddch(9, 0, '3');
                     78:        mvaddch(10, 0, '4');
                     79:        mvaddch(11, 0, '5');
                     80:        mvaddch(12, 0, '6');
                     81:        mvaddstr(13, 0, "--BATTLE--");
                     82:        mvaddstr(15, 0, "--SPEED--");
                     83:        mvaddstr(5, 20, "--DECK--");
                     84:        mvaddstr(7, 20, "--DISCARD--");
                     85:        mvaddstr(13, 20, "--BATTLE--");
                     86:        mvaddstr(15, 20, "--SPEED--");
                     87:        wmove(Miles, 0, 0);
                     88:        if (winch(Miles) != '-') {
                     89:                werase(Miles);
                     90:                mvwaddstr(Miles, 0, 0, "--MILEAGE--");
                     91:                mvwaddstr(Miles, 0, 41, "--MILEAGE--");
                     92:        }
                     93:        else {
                     94:                wmove(Miles, 1, 0);
                     95:                wclrtobot(Miles);
                     96:        }
                     97:        newscore();
                     98:        stdscr = Board;
                     99: }
                    100: 
                    101: newscore() {
                    102: 
                    103:        reg int i;
                    104: 
                    105:        stdscr = Score;
                    106:        move(0, 22);
                    107:        if (inch() != 'Y') {
                    108:                erase();
                    109:                mvaddstr(0, 22,  "You   Comp   Value");
                    110:                mvaddstr(1, 2, "Milestones Played");
                    111:                mvaddstr(2, 8, "Each Safety");
                    112:                mvaddstr(3, 5, "All 4 Safeties");
                    113:                mvaddstr(4, 3, "Each Coup Fourre");
                    114:                mvaddstr(2, 37, "100");
                    115:                mvaddstr(3, 37, "300");
                    116:                mvaddstr(4, 37, "300");
                    117:        }
                    118:        else {
                    119:                move(5, 1);
                    120:                clrtobot();
                    121:        }
                    122:        for (i = 0; i < SCORE_Y; i++)
                    123:                mvaddch(i, 0, '|');
                    124:        move(SCORE_Y - 1, 1);
                    125:        while (addch('_') != ERR)
                    126:                continue;
                    127:        if (Window == W_FULL || Finished) {
                    128:                mvaddstr(5, 5, "Trip Completed");
                    129:                mvaddstr(6, 10, "Safe Trip");
                    130:                mvaddstr(7, 5, "Delayed Action");
                    131:                mvaddstr(8, 10, "Extension");
                    132:                mvaddstr(9, 11, "Shut-Out");
                    133:                mvaddstr(10, 21, "----   ----   -----");
                    134:                mvaddstr(11, 9, "Hand Total");
                    135:                mvaddstr(12, 20, "-----  -----");
                    136:                mvaddstr(13, 6, "Overall Total");
                    137:                mvaddstr(14, 15, "Games");
                    138:                mvaddstr(5, 37, "400");
                    139:                mvaddstr(6, 37, "300");
                    140:                mvaddstr(7, 37, "300");
                    141:                mvaddstr(8, 37, "200");
                    142:                mvaddstr(9, 37, "500");
                    143:        }
                    144:        else {
                    145:                mvaddstr(5, 21, "----   ----   -----");
                    146:                mvaddstr(6, 9, "Hand Total");
                    147:                mvaddstr(7, 20, "-----  -----");
                    148:                mvaddstr(8, 6, "Overall Total");
                    149:                mvaddstr(9, 15, "Games");
                    150:                mvaddstr(11, 2, "p: pick");
                    151:                mvaddstr(12, 2, "u: use #");
                    152:                mvaddstr(13, 2, "d: discard #");
                    153:                mvaddstr(14, 2, "w: toggle window");
                    154:                mvaddstr(11, 21, "q: quit");
                    155:                mvaddstr(12, 21, "o: order hand");
                    156:                mvaddstr(13, 21, "s: save");
                    157:                mvaddstr(14, 21, "r: reprint");
                    158:        }
                    159:        stdscr = Board;
                    160: }

unix.superglobalmegacorp.com

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