Example #1
0
pile getAllUnseenCards(state s, playerNum p)
{
    pile unseenCards = s.deckWithIndex & DECK;
    unseenCards = addCards(unseenCards, getPHand(s, 1-p));
    unseenCards = removeCards(unseenCards, getPRevCards(s, 1-p));
    return unseenCards;
}
Example #2
0
void HelloWorld::startGame(){
    pointArr->removeAllObjects();
    removeAllChildren();
    cardArr->removeAllObjects();
    currentNum=1;
    
    genAllPoint();
    addCards();
}
Example #3
0
/**
 * Returns the last card of the deck, if this deck is empty
 * the Deck is refilled by the underlying cards of the given deck,
 * shuffled and then the last card is returned.
 * @brief Returns the last card of the deck.
 * @param dropped_cards
 * @return
 */
Card Deck::getLast(Deck& cardDepot)
{
    if (empty()) {
        if (cardDepot.empty()) {
            throw std::invalid_argument("cardDepot contains too few cards");
        } else {
            addCards(cardDepot.getUnderlyingCards());
        }
    }
    Card returned_card = cards.back();
    cards.pop_back();
    return returned_card;
}
Example #4
0
state setNewDeckOrder(state s, playerNum p, unsigned int *posIndexes)
{
    pile unseenCards = getAllUnseenCards(s, p);
    pile oppNewHand = getPRevCards(s, 1-p);
    unsigned int numUnseenCards = numCardsLeft(unseenCards);
    unsigned int numUnseenOppCards = numCardsLeft(getPHand(s, 1-p)) -
        numCardsLeft(oppNewHand);
    for(unsigned int i=0; i < numUnseenOppCards; i++)
    {
        card c = getNthCard(unseenCards, posIndexes[i]);
        oppNewHand = addCards(oppNewHand, c);
    }
    pile newDeck = 0;
    unsigned int deckCurrIndex = s.deckWithIndex >> 28;
    for(unsigned int i=numUnseenOppCards; i < numUnseenCards; i++, deckCurrIndex++)
    {
        card c = getNthCard(unseenCards, posIndexes[i]);
        newDeck = addCards(newDeck, c);
        s.deckOrder[deckCurrIndex] = c;
    }
    s.deckWithIndex = newDeck + (s.deckWithIndex & (((unsigned long long) 0xf) << 28));
    s = setPHand(s, 1-p, oppNewHand);
    return s;
}
Example #5
0
moveGroup addTrumpSwapMoves_CLOSE(state s, pile hand, moveGroup mg)
{
    card trumpCard = getTrumpCard(s);
    rank marrPartner = getMarriagePartner(trumpCard);
    if(isKingOrQueen(trumpCard) && contains(hand, marrPartner))
    {
        card trumpMask = getCardSuitMask(getTrumpCard(s));
        pile suitQueenKing = trumpCard | marrPartner;
        mg.groups[6] |= suitQueenKing & trumpMask;
        mg.groups[7] |= suitQueenKing & (~trumpMask);
    }
    card trumpJack = getTrumpJack(trumpCard);
    hand = removeCard(hand, trumpJack);
    hand = addCards(hand, trumpCard);
    mg.groups[6] |= mg.groups[9];
    mg.groups[7] |= mg.groups[10];
    mg.groups[8] |= hand;
    return mg;
}
Example #6
0
CardsDB::CardsDB()
{
    addCards(bttv_cards, BTTV);
}
Example #7
0
 bool Package::init() {
     addGenerals();
     addCards();
     return true;
 }