void game_get_play(int play_hand, int num_valid_cards, card_t * valid_cards) { int play_num, hand_num; hand_t *hand = &ggzcards.players[play_hand].hand; bool valid_plays[hand->hand_size]; card_t play; assert(play_hand == ggzcards.play_hand); for (hand_num = 0; hand_num < hand->hand_size; hand_num++) valid_plays[hand_num] = FALSE; for (play_num = 0; play_num < num_valid_cards; play_num++) { card_t play_card = valid_cards[play_num]; for (hand_num = 0; hand_num < hand->hand_size; hand_num++) { card_t hand_card = hand->cards[hand_num]; if (are_cards_equal(play_card, hand_card)) { valid_plays[hand_num] = TRUE; break; } } assert(hand_num < hand->hand_size); } play = get_play(ggzcards.play_hand, valid_plays); ggz_debug(DBG_PLAY, "We're playing the %s of %s.", get_face_name(play.face), get_suit_name(play.suit)); make_play(play); }
void human_turn(t_map *s_map, char chip) { char *buf; int play; int ok; ok = -1; while (ok) { get_next_line(0, &buf); if (buf[0] != '\0' && verify_letter(buf) != 0) { play = ft_atoi(buf); if ((ok = is_play_ok(play, s_map)) == 1) write(1, "play again, incorrect value:\n", 29); } free(buf); } make_play(play, s_map, chip); }