- #ifndef lint
- static char sccsid[] = "@(#)cards.c 5.4 (Berkeley) 6/1/90";
- #endif /* not lint */
-
- # include "monop.ext"
- # include "pathnames.h"
-
- /*
- * These routine deal with the card decks
- */
-
- # define GOJF 'F' /* char for get-out-of-jail-free cards */
-
- # ifndef DEV
- static char *cardfile = _PATH_CARDS;
- # else
- static char *cardfile = "cards.pck";
- # endif
-
- static FILE *deckf;
-
- /*
- * This routine initializes the decks from the data file,
- * which it opens.
- */
- void init_decks(void) {
-
- if ((deckf=fopen(cardfile, "r")) == NULL) {
- file_err:
- perror(cardfile);
- exit(1);
- }
- if (fread(deck, sizeof (DECK), 2, deckf) != 2) {
- // goto file_err;
- perror(cardfile);
- exit(1);
- }
- set_up(&CC_D);
- set_up(&CH_D);
- }
- /*
- * This routine sets up the offset pointers for the given deck.
- */
- void set_up(DECK *dp)
- {
-
- reg int r1, r2;
- int i;
-
- dp->offsets = (long *) calloc(sizeof (long), dp->num_cards);
- if (fread(dp->offsets, sizeof(long), dp->num_cards, deckf)
!= dp->num_cards) {
- perror(cardfile);
- exit(1);
- }
- dp->last_card = 0;
- dp->gojf_used = FALSE;
- for (i = 0; i < dp->num_cards; i++) {
- reg long temp;
-
- r1 = roll(1, dp->num_cards) - 1;
- r2 = roll(1, dp->num_cards) - 1;
- temp = dp->offsets[r2];
- dp->offsets[r2] = dp->offsets[r1];
- dp->offsets[r1] = temp;
- }
- }
|
- import java.io.*;
- public class CardReader {
- public final static char GOJF = 'F';
- static String cardfile = Pathnames._PATH_CARDS;
- static DataObjectInputStream deckf;
- static void init_decks() {
- try {
- try {
- deckf = new DataObjectInputStream(new FileInputStream(cardfile));
- }
- catch (FileNotFoundException e) {
- System.err.println("FileNotFoundException:" + e);
- }
- }
- catch (Exception e) {
- System.err.println(cardfile);
- System.exit(1);
- }
- try {
- InitDeck.deck = (Dk_st[]) deckf.readArray(InitDeck.deck, 2);
- System.err.println(cardfile);
- System.exit(1);
- }
- catch (Exception e) {
- }
- set_up(InitDeck.deck[0]);
- set_up(InitDeck.deck[1]);
- }
- static void set_up(Dk_st dp) {
- int r1 = 0;
- int r2 = 0;
- int i = 0;
- dp.offsets = new long[dp.num_cards];
- try {
- dp.offsets = (long[]) deckf.readArray(dp.offsets, dp.num_cards);
- System.err.println(cardfile);
- System.exit(1);
- }
- catch (Exception e) {
- }
- dp.last_card = 0;
- dp.gojf_used = false;
- for (i = 0;i < dp.num_cards;i++) {
- long temp = 0L;
- r1 = Roll.roll(1, dp.num_cards) - 1;
- r2 = Roll.roll(1, dp.num_cards) - 1;
- temp = dp.offsets[r2];
- dp.offsets[r2] = dp.offsets[r1];
- dp.offsets[r1] = temp;
- }
- }
- }
|