Пример #1
0
Файл: game.c Проект: ralight/ggz
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);
}
Пример #2
0
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);
}