# Path: bot/card.py
# class Card:
#     def __init__(self,
#                  gameObj: 'game.Game',
#                  playerObj: int,
#                  deckPosition: int,
#                  suit: Optional[Color],
#                  rank: Optional[Value]) -> None:
#     def __str__(self) -> str:
#     def got_positive_color(self, color: Color) -> None:
#     def got_negative_color(self, color: Color) -> None:
#     def got_positive_value(self, value: Value) -> None:
#     def got_negative_value(self, value: Value) -> None:
# 
# Path: enums.py
# class Variant(Enum):
#     NoVariant = 0
#     BlackSuit = 1
#     Rainbow = 2
#     OneOfEach = 3
# 
#     @property
#     def full_name(self):
#         if self is Variant.NoVariant:
#             return 'No Variant'
#         if self is Variant.BlackSuit:
#             return 'Black Suit'
#         if self is Variant.Rainbow:
#             return 'Rainbow'
#         if self is Variant.OneOfEach:
#             return 'One Of Each'
#         return self.name
# 
#     @property
#     def pile_colors(self):
#         if self is Variant.NoVariant:
#             return [Color.Blue, Color.Green, Color.Yellow, Color.Red,
#                     Color.Purple]
#         if self in [Variant.BlackSuit, Variant.OneOfEach]:
#             return [Color.Blue, Color.Green, Color.Yellow, Color.Red,
#                     Color.Purple, Color.Black]
#         if self is Variant.Rainbow:
#             return [Color.Blue, Color.Green, Color.Yellow, Color.Red,
#                     Color.Purple, Color.Rainbow]
#         raise ValueError
# 
#     @property
#     def clue_colors(self):
#         if self in [Variant.NoVariant, Variant.Rainbow]:
#             return [Color.Blue, Color.Green, Color.Yellow, Color.Red,
#                     Color.Purple]
#         if self in [Variant.BlackSuit, Variant.OneOfEach]:
#             return [Color.Blue, Color.Green, Color.Yellow, Color.Red,
#                     Color.Purple, Color.Black]
#         raise ValueError
# 
#     @property
#     def pile_suits(self):
#         if self is Variant.NoVariant:
#             return [Suit.Blue, Suit.Green, Suit.Yellow, Suit.Red, Suit.Purple]
#         if self in [Variant.BlackSuit, Variant.OneOfEach, Variant.Rainbow]:
#             return [Suit.Blue, Suit.Green, Suit.Yellow, Suit.Red, Suit.Purple,
#                     Suit.Extra]
#         raise ValueError


from bot import card
from enums import Variant
                            yesV = True
                        else:
                            noV = True
                    if not yesW or not noW:
                        if self.bot.isWorthless(c, v):
                            yesW = True
                        else:
                            noW = True
            if yesP and yesV and yesW:
                break

        assert yesP or noP
        assert yesV or noV
        assert yesW or noW

        self.playable = (None if noP else True) if yesP else False
        self.valuable = (None if noV else True) if yesV else False
        self.worthless = (None if noW else True) if yesW else False

        if self.worthless is True:
            assert self.valuable is False
            assert self.playable is False

    def update_valid_canbe(self, useMyEyesight):
        color = self.color
        if color is None:
            for c in colors:
                if self.cannotBeColor(c):
                    continue
                elif color is None:

# Path: bot/card.py
# class Card:
#     def __init__(self,
#                  gameObj: 'game.Game',
#                  playerObj: int,
#                  deckPosition: int,
#                  suit: Optional[Color],
#                  rank: Optional[Value]) -> None:
#     def __str__(self) -> str:
#     def got_positive_color(self, color: Color) -> None:
#     def got_negative_color(self, color: Color) -> None:
#     def got_positive_value(self, value: Value) -> None:
#     def got_negative_value(self, value: Value) -> None:
# 
# Path: enums.py
# class Variant(Enum):
#     NoVariant = 0
#     BlackSuit = 1
#     Rainbow = 2
#     OneOfEach = 3
# 
#     @property
#     def full_name(self):
#         if self is Variant.NoVariant:
#             return 'No Variant'
#         if self is Variant.BlackSuit:
#             return 'Black Suit'
#         if self is Variant.Rainbow:
#             return 'Rainbow'
#         if self is Variant.OneOfEach:
#             return 'One Of Each'
#         return self.name
# 
#     @property
#     def pile_colors(self):
#         if self is Variant.NoVariant:
#             return [Color.Blue, Color.Green, Color.Yellow, Color.Red,
#                     Color.Purple]
#         if self in [Variant.BlackSuit, Variant.OneOfEach]:
#             return [Color.Blue, Color.Green, Color.Yellow, Color.Red,
#                     Color.Purple, Color.Black]
#         if self is Variant.Rainbow:
#             return [Color.Blue, Color.Green, Color.Yellow, Color.Red,
#                     Color.Purple, Color.Rainbow]
#         raise ValueError
# 
#     @property
#     def clue_colors(self):
#         if self in [Variant.NoVariant, Variant.Rainbow]:
#             return [Color.Blue, Color.Green, Color.Yellow, Color.Red,
#                     Color.Purple]
#         if self in [Variant.BlackSuit, Variant.OneOfEach]:
#             return [Color.Blue, Color.Green, Color.Yellow, Color.Red,
#                     Color.Purple, Color.Black]
#         raise ValueError
# 
#     @property
#     def pile_suits(self):
#         if self is Variant.NoVariant:
#             return [Suit.Blue, Suit.Green, Suit.Yellow, Suit.Red, Suit.Purple]
#         if self in [Variant.BlackSuit, Variant.OneOfEach, Variant.Rainbow]:
#             return [Suit.Blue, Suit.Green, Suit.Yellow, Suit.Red, Suit.Purple,
#                     Suit.Extra]
#         raise ValueError


# Path: awwbot/card_knowledge.py
from bot import card
from enums import Variant

                            yesV = True
                        else:
                            noV = True
                    if not yesW or not noW:
                        if self.bot.isWorthless(c, v):
                            yesW = True
                        else:
                            noW = True
            if yesP and yesV and yesW:
                break

        assert yesP or noP
        assert yesV or noV
        assert yesW or noW

        self.playable = (None if noP else True) if yesP else False
        self.valuable = (None if noV else True) if yesV else False
        self.worthless = (None if noW else True) if yesW else False

        if self.worthless is True:
            assert self.valuable is False
            assert self.playable is False

    def update_valid_canbe(self, useMyEyesight):
        color = self.color
        if color is None:
            for c in colors:
                if self.cannotBeColor(c):
                    continue
                elif color is None:

                    color = c