struct player *create_player(uint8_t id, char *name) { struct player *p = NULL; p = calloc(sizeof(struct player)); p->name = name; p->id = id; p->book_count = 0; p->h = create_hand(); return p; }
Hand *create_batch_hand(char *card_info) { char rank[3], suit[10]; Hand *hand = create_hand(); char *cp = card_info; int i = 0; sscanf(cp, "%s of %[a-z]s\n", rank, suit); add_card_to_hand(hand, rank, suit); while(cp = strchr(cp+1, ',')) { sscanf(cp, ", %s of %[a-z]s\n", rank, suit); add_card_to_hand(hand, rank, suit); } return hand; }
int simulate_razz_game (const struct decided_cards *decided_cards, unsigned long game_count, void *arg, rank_listener listener) { unsigned long i; card_hand *my_hand; card_deck *deck; my_hand = create_hand (RAZZ_CARD_IN_HAND_COUNT, sort_card_by_rank); if (my_hand == NULL) { fprintf (stderr, "Cannot create a hand\n"); return 1; } for (i = 0; i < game_count; i++) { deck = create_shuffled_deck (); if (deck == NULL) { fprintf (stderr, "Cannot create a shuffled deck\n"); destroy_deck (&deck); return 1; } strip_deck (deck, decided_cards); complete_hand (my_hand, decided_cards, deck); listener (arg, get_razz_rank (my_hand)); reset_hand (my_hand); destroy_deck (&deck); } destroy_hand (&my_hand); destroy_deck (&deck); return 0; }