Example #1
0
void test_deck_compareCards()
{
    struct Card *card1 = deck_createCard(DIAMONDS, VALUES[2]);
    struct Card *card2 = deck_createCard(DIAMONDS, VALUES[2]);

    cut_assert_equal_int(CARD_NULL, deck_compareCards(card1, NULL, DIAMONDS));
    cut_assert_equal_int(CARD_NULL, deck_compareCards(NULL, card2, DIAMONDS));
    cut_assert_equal_int(CARD_NULL, deck_compareCards(NULL, NULL, DIAMONDS));

    cut_assert_equal_int(0, deck_compareCards(card1, card2, SuitEnd));

    card1->value = VALUES[3];
    cut_assert_equal_int(1, deck_compareCards(card1, card2, SuitEnd));
    cut_assert_equal_int(1, deck_compareCards(card1, card2, DIAMONDS));
    cut_assert_equal_int(1, deck_compareCards(card1, card2, CLUBS));
    cut_assert_equal_int(2, deck_compareCards(card2, card1, SuitEnd));
    cut_assert_equal_int(2, deck_compareCards(card2, card1, DIAMONDS));
    cut_assert_equal_int(2, deck_compareCards(card2, card1, CLUBS));

    card2->suit = CLUBS;
    cut_assert_equal_int(1, deck_compareCards(card1, card2, DIAMONDS));
    cut_assert_equal_int(1, deck_compareCards(card1, card2, SuitEnd));
    cut_assert_equal_int(1, deck_compareCards(card1, card2, SPADES));
    cut_assert_equal_int(2, deck_compareCards(card2, card1, DIAMONDS));
    cut_assert_equal_int(1, deck_compareCards(card2, card1, SuitEnd));
    cut_assert_equal_int(1, deck_compareCards(card2, card1, SPADES));

    deck_deleteCard(&card1);
    deck_deleteCard(&card2);
}
Example #2
0
void test_hand_checkCard()
{
    struct Hand *hand = hand_createHand();
    struct Player *players[3];
    struct Card *card;

    for (int i = 0; i < 3; i++) {
        players[i] = player_createPlayer("A", i);
        hand_addPlayer(hand, players[i]);
    }

    for (int i = 0; i != SuitEnd; i++ )
        for (int j = 0; j < 6; j++) {
            card = deck_createCard(i, VALUES[j]);
            player_addCard(players[j % 3], &card);
        }

    cut_assert_equal_int(1, hand_checkCard(hand, players[0], 0, NULL));
    cut_assert_equal_int(1, hand_checkCard(hand, players[0], 2, NULL));
    cut_assert_equal_int(1, hand_checkCard(hand, players[0], 4, NULL));
    cut_assert_equal_int(1, hand_checkCard(hand, players[0], 6, NULL));
    hand_addCard(hand, players[0], &players[0]->hand[0]); 
    cut_assert_equal_int(0, hand_checkCard(hand, players[1], 2, NULL));
    cut_assert_equal_int(1, hand_checkCard(hand, players[1], 0, NULL));
    deck_deleteCard(&(players[1]->hand[0]));
    deck_deleteCard(&(players[1]->hand[1]));
    cut_assert_equal_int(1, hand_checkCard(hand, players[1], 2, NULL));
    hand_addCard(hand, players[1], &players[1]->hand[2]);
    card = deck_createCard(CLUBS, VALUES[6]);
    cut_assert_equal_int(0, hand_checkCard(hand, players[2], 2, card));
    cut_assert_equal_int(0, hand_checkCard(hand, players[2], 4, card));
    cut_assert_equal_int(1, hand_checkCard(hand, players[2], 0, card));
    cut_assert_equal_int(1, hand_checkCard(hand, players[2], 1, card));
    deck_deleteCard(&(players[2]->hand[0]));
    deck_deleteCard(&(players[2]->hand[1]));
    cut_assert_equal_int(1, hand_checkCard(hand, players[2], 2, card));
    cut_assert_equal_int(0, hand_checkCard(hand, players[2], 4, card));
    deck_deleteCard(&(players[2]->hand[2]));
    deck_deleteCard(&(players[2]->hand[3]));
    cut_assert_equal_int(1, hand_checkCard(hand, players[2], 4, card));
    cut_assert_equal_int(1, hand_checkCard(hand, players[2], 6, card));

    deck_deleteCard(&card);
    hand_deleteHand(&hand);     
    for (int i = 0; i < 3; i++) {
        for (int j = 0; j < MAX_CARDS; j++)
            deck_deleteCard(&players[i]->hand[j]);
        player_deletePlayer(&players[i]);
    }
}
Example #3
0
void test_deck_createCard()
{
    struct Card *card;
    cut_assert_equal_pointer(NULL, deck_createCard(SuitEnd, VALUES[0]));
    cut_assert_equal_pointer(NULL, deck_createCard(DIAMONDS, -1));
    cut_assert_equal_pointer(NULL, deck_createCard(SuitEnd, -1));

    for (int i = 0; i < SuitEnd; i++)
        for (int j = 0; VALUES[j] != -1; j++) {
            card = deck_createCard(i, VALUES[j]);
            cut_assert_equal_int(card->suit, i);
            cut_assert_equal_int(card->value, VALUES[j]);
            deck_deleteCard(&card);
        }
}
Example #4
0
void test_deck_deleteCard()
{
    struct Card *card = deck_createCard(DIAMONDS, VALUES[0]);
    cut_assert_equal_int(POINTER_NULL, deck_deleteCard(NULL));
    cut_assert_equal_int(FUNCTIOON_NO_ERROR, deck_deleteCard(&card));
    cut_assert_equal_pointer(NULL, card);
    cut_assert_equal_int(CARD_NULL, deck_deleteCard(&card));
}
Example #5
0
/**
 * This function initializes a deck by iterating over all values and suits
 * available. The deck will be always the same.
 */
struct Deck *deck_createDeck()
{
    struct Deck *deck = malloc(sizeof(struct Deck));
    if (deck == NULL)
        return NULL;

    int k = 0;
    for (enum Suit i = 0; i < SuitEnd; i++) {
        for (int j = 0; VALUES[j] != -1; j++) {
            struct Card *card = deck_createCard(i, VALUES[j]);
            deck->cards[k++] = card;
        }
    }

    return deck;
}
Example #6
0
void test_round_addTrump()
{
    struct Round *round  = round_createRound(MIN_CARDS);
    struct Card  *trump  = deck_createCard(DIAMONDS, VALUES[0]);
    struct Card  *trump2 = trump;

    cut_assert_equal_int(ROUND_NULL, round_addTrump(NULL, &trump));
    cut_assert_equal_int(POINTER_NULL, round_addTrump(round, NULL));
    cut_assert_operator_int(0, >, round_addTrump(NULL, NULL));
    cut_assert_equal_int(FUNCTIOON_NO_ERROR, round_addTrump(round, &trump));
    cut_assert_equal_pointer(NULL, trump);
    cut_assert_equal_pointer(trump2, round->trump);
    cut_assert_equal_int(FUNCTIOON_NO_ERROR, round_addTrump(round, &trump));
    cut_assert_equal_pointer(NULL, trump);
    cut_assert_equal_pointer(NULL, round->trump);

    round_deleteRound(&round);
}
Example #7
0
void test_round_getPlayerWhichWonHand()
{
    struct Round *round = round_createRound(1);
    struct Player *player;
    struct Card *cards[6];

    cut_assert_equal_pointer(NULL, round_getPlayerWhichWonHand(NULL));
    cut_assert_equal_pointer(NULL, round_getPlayerWhichWonHand(round));
    round->hand = hand_createHand();
    cut_assert_equal_pointer(NULL, round_getPlayerWhichWonHand(round));

    for (int i = 0; i < 6; i++) {
        player = player_createPlayer("A", i);
        round_addPlayer(round, player);
        hand_addPlayer(round->hand, player);
        player = NULL;
    }

    cards[0] = deck_createCard(DIAMONDS, 6);
    cards[1] = deck_createCard(DIAMONDS, 7);
    cards[2] = deck_createCard(DIAMONDS, 8);
    cards[3] = deck_createCard(DIAMONDS, 15);
    cards[4] = deck_createCard(CLUBS, 14);
    cards[5] = deck_createCard(SPADES, 7);

    cut_assert_equal_pointer(NULL, round_getPlayerWhichWonHand(round));

    for (int i = 0; i < 6; i++)
        hand_addCard(round->hand, round->hand->players[i], &cards[i]);

    struct Card *trump = deck_createCard(DIAMONDS, 14);

    cut_assert_equal_pointer(round->hand->players[3],
                             round_getPlayerWhichWonHand(round));
    round->trump = trump;
    cut_assert_equal_pointer(round->hand->players[3],
                             round_getPlayerWhichWonHand(round));
    round->trump->suit = CLUBS;
    cut_assert_equal_pointer(round->hand->players[4],
                             round_getPlayerWhichWonHand(round));
    round->trump->suit = SPADES;
    cut_assert_equal_pointer(round->hand->players[5],
                             round_getPlayerWhichWonHand(round));
    round->trump->suit = HEARTS;
    cut_assert_equal_pointer(round->hand->players[3],
                             round_getPlayerWhichWonHand(round));
    round->hand->cards[0]->suit = HEARTS;
    cut_assert_equal_pointer(round->hand->players[0],
                             round_getPlayerWhichWonHand(round));
    round->trump = NULL;
    cut_assert_equal_pointer(round->hand->players[0],
                             round_getPlayerWhichWonHand(round));
    round->trump = trump;
    round->trump->suit = DIAMONDS;
    cut_assert_equal_pointer(round->hand->players[3],
                             round_getPlayerWhichWonHand(round));
    round->trump->suit = CLUBS;
    cut_assert_equal_pointer(round->hand->players[4],
                             round_getPlayerWhichWonHand(round));
    round->trump->suit = SPADES;
    cut_assert_equal_pointer(round->hand->players[5],
                             round_getPlayerWhichWonHand(round));

    for (int i = 0; i < 6; i++)
        player_deletePlayer(&round->players[i]);

    round_deleteRound(&round);
}