def raw_plays_without_coin(self):
        res = []

        possible = [card for card in
                    filter(lambda card: card.mana <= self.mana, self.cards)]

        if self.possible_is_pointless_coin(possible):
            possible = []

        if self.mana >= 2 and self.allow_hero_power:
            possible.append(HeroPowerCard())

        if len(possible) == 0:
            return [[]]

        for card in possible:
            rest = self.cards[0:99999]

            if card.name == 'Hero Power':
                f_plays = PossiblePlays(rest,
                                        self.mana - card.mana,
                                        allow_hero_power=False).raw_plays()
            else:
                rest.remove(card)
                f_plays = PossiblePlays(rest,
                                        self.mana - card.mana,
                                        allow_hero_power=self.allow_hero_power).raw_plays()

            for following_play in f_plays:
                combined = [card] + following_play
                res.append(combined)

        res = Util.uniq_by_sorted(res)

        return res
示例#2
0
    def raw_plays_without_coin(self):
        res = []

        def valid_card(card):
            saved_mana = card.player.mana
            card.player.mana = self.mana
            usable = card.can_use(card.player, card.player.game)
            card.player.mana = saved_mana
            return usable

        possible = [card for card in filter(valid_card, self.cards)]

        if self.possible_is_pointless_coin(possible):
            possible = []

        if self.mana >= 2 and self.allow_hero_power:
            possible.append(HeroPowerCard())

        if len(possible) == 0:
            return [[]]

        for card in possible:
            rest = self.cards[0:99999]

            if card.name == 'Hero Power':
                f_plays = PossiblePlays(rest,
                                        self.mana -
                                        card.mana_cost(card.player),
                                        allow_hero_power=False).raw_plays()
            else:
                rest.remove(card)
                f_plays = PossiblePlays(
                    rest,
                    self.mana - card.mana_cost(card.player),
                    allow_hero_power=self.allow_hero_power).raw_plays()

            for following_play in f_plays:
                combined = [card] + following_play
                res.append(combined)

        res = Util.uniq_by_sorted(res)

        return res
示例#3
0
    def raw_plays_without_coin(self):
        res = []

        def valid_card(card):
            saved_mana = card.player.mana
            card.player.mana = self.mana
            usable = card.can_use(card.player, card.player.game)
            card.player.mana = saved_mana
            return usable

        possible = [card for card in
                    filter(valid_card, self.cards)]

        if self.possible_is_pointless_coin(possible):
            possible = []

        if self.mana >= 2 and self.allow_hero_power:
            possible.append(HeroPowerCard())

        if len(possible) == 0:
            return [[]]

        for card in possible:
            rest = self.cards[0:99999]

            if card.name == 'Hero Power':
                f_plays = PossiblePlays(rest,
                                        self.mana - card.mana_cost(),
                                        allow_hero_power=False).raw_plays()
            else:
                rest.remove(card)
                f_plays = PossiblePlays(rest,
                                        self.mana - card.mana_cost(),
                                        allow_hero_power=self.allow_hero_power).raw_plays()

            for following_play in f_plays:
                combined = [card] + following_play
                res.append(combined)

        res = Util.uniq_by_sorted(res)

        return res
示例#4
0
    def raw_plays_without_coin(self):
        res = []

        possible = [
            card
            for card in filter(lambda card: card.mana <= self.mana, self.cards)
        ]

        if self.possible_is_pointless_coin(possible):
            possible = []

        if self.mana >= 2 and self.allow_hero_power:
            possible.append(HeroPowerCard())

        if len(possible) == 0:
            return [[]]

        for card in possible:
            rest = self.cards[0:99999]

            if card.name == 'Hero Power':
                f_plays = PossiblePlays(rest,
                                        self.mana - card.mana,
                                        allow_hero_power=False).raw_plays()
            else:
                rest.remove(card)
                f_plays = PossiblePlays(
                    rest,
                    self.mana - card.mana,
                    allow_hero_power=self.allow_hero_power).raw_plays()

            for following_play in f_plays:
                combined = [card] + following_play
                res.append(combined)

        res = Util.uniq_by_sorted(res)

        return res