Esempio n. 1
0
    def __init__(self, verbose):
        self.hand = []
        self.name = random.randint(0, 1000000)
        self.verbose = verbose
        self.wins = 0

        # For card counting
        self.opponentHand = []
        self.maxCards = [max(durak.Card.RANKS) for _ in durak.Card.SUITS]
        self.unseenCards = set(durak.getDeck())
Esempio n. 2
0
    def __init__(self, verbose):
        self.hand = []
        self.name = random.randint(0, 1000000)
        self.verbose = verbose
        self.wins = 0

        # For card counting
        self.opponentHand = []
        self.maxCards = [max(durak.Card.RANKS) for _ in durak.Card.SUITS]
        self.unseenCards = set(durak.getDeck())
Esempio n. 3
0
        elif len(trumpCards) > 0:
            return options.index(trumpCards[0])

    def beginAttack(self, trumpCard, deckSize, opponentHandSize, trashCards):
        return self.policy(self.hand, trumpCard.suit)

    def chooseAttackCard(self, options, table, trumpCard, deckSize,
                         opponentHandSize, trashCards):
        return self.policy(options, trumpCard.suit)

    def chooseDefenseCard(self, options, table, trumpCard, deckSize,
                          opponentHandSize, trashCards):
        return self.policy(options, trumpCard.suit)


FULL_DECK = durak.getDeck(shuffle=False)


def avgRank(cards):
    rankSum = sum(c.rank for c in cards)
    if len(cards) == 0:
        return 0
    else:
        return float(rankSum) / len(cards)


def extractFeatures(hand, opponentHand, opponentHandSize, trumpCard, table,
                    deckSize, unseenCards):
    features = [len(hand), len(table), deckSize, opponentHandSize]
    for rank in durak.Card.RANKS:
        rankCards = filter(lambda c: c.rank == rank, hand)
Esempio n. 4
0
        if len(nonTrumpCards) > 0:
            return options.index(nonTrumpCards[0])
        elif len(trumpCards) > 0:
            return options.index(trumpCards[0])

    def beginAttack(self, trumpCard, deckSize, opponentHandSize, trashCards):
        return self.policy(self.hand, trumpCard.suit)

    def chooseAttackCard(self, options, table, trumpCard, deckSize, opponentHandSize, trashCards):
        return self.policy(options, trumpCard.suit)

    def chooseDefenseCard(self, options, table, trumpCard, deckSize, opponentHandSize, trashCards):
        return self.policy(options, trumpCard.suit)


FULL_DECK = durak.getDeck(shuffle=False)


def avgRank(cards):
    rankSum = sum(c.rank for c in cards)
    if len(cards) == 0:
        return 0
    else:
        return float(rankSum) / len(cards)


def extractFeatures(hand, opponentHand, opponentHandSize,
                    trumpCard, table, deckSize, unseenCards):
    features = [len(hand), len(table), deckSize, opponentHandSize]
    for rank in durak.Card.RANKS:
        rankCards = filter(lambda c: c.rank == rank, hand)