|
|
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: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.