# 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 Value(IntEnum):
#     '''
#     Only for internal usage
#     '''
#     V1 = 1
#     V2 = 2
#     V3 = 3
#     V4 = 4
#     V5 = 5
# 
#     @property
#     def num_copies(self):
#         if self is Value.V1:
#             return 3
#         if self is Value.V2:
#             return 2
#         if self is Value.V3:
#             return 2
#         if self is Value.V4:
#             return 2
#         if self is Value.V5:
#             return 1
#         raise ValueError
# 
#     def rank(self):
#         if self is Value.V1:
#             return Rank.R1
#         if self is Value.V2:
#             return Rank.R2
#         if self is Value.V3:
#             return Rank.R3
#         if self is Value.V4:
#             return Rank.R4
#         if self is Value.V5:
#             return Rank.R5
#         raise ValueError


from bot import card
from enums import Value
        return tot

    def setCannotBeValue(self, value):
        tot = 0
        for c in self.bot.colors:
            if not self.cantBe[c][value]:
                tot += 1
                self.cantBe[c][value] = True
        return tot

    def setIsPlayable(self, knownPlayable):
        for c in self.bot.colors:
            playableValue = len(self.bot.game.playedCards[c]) + 1
            for v in self.bot.values:
                if self.cantBe[c][v]:
                    continue
                if (v == playableValue) != knownPlayable:
                    self.cantBe[c][v] = True
        self.playable = knownPlayable

    def setIsValuable(self, knownValuable):
        for c in self.bot.colors:
            for v in self.bot.values:
                if self.cantBe[c][v]:
                    continue
                if self.bot.isValuable(c, v) != knownValuable:
                    self.cantBe[c][v] = True
        self.playable = knownValuable

    def setIsWorthless(self, knownWorthless):

# 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 Value(IntEnum):
#     '''
#     Only for internal usage
#     '''
#     V1 = 1
#     V2 = 2
#     V3 = 3
#     V4 = 4
#     V5 = 5
# 
#     @property
#     def num_copies(self):
#         if self is Value.V1:
#             return 3
#         if self is Value.V2:
#             return 2
#         if self is Value.V3:
#             return 2
#         if self is Value.V4:
#             return 2
#         if self is Value.V5:
#             return 1
#         raise ValueError
# 
#     def rank(self):
#         if self is Value.V1:
#             return Rank.R1
#         if self is Value.V2:
#             return Rank.R2
#         if self is Value.V3:
#             return Rank.R3
#         if self is Value.V4:
#             return Rank.R4
#         if self is Value.V5:
#             return Rank.R5
#         raise ValueError


# Path: onlyfulltag_v1_5/card_knowledge.py
from bot import card
from enums import Value

        return tot

    def setCannotBeValue(self, value):
        tot = 0
        for c in self.bot.colors:
            if not self.cantBe[c][value]:
                tot += 1
                self.cantBe[c][value] = True
        return tot

    def setIsPlayable(self, knownPlayable):
        for c in self.bot.colors:
            playableValue = len(self.bot.game.playedCards[c]) + 1
            for v in self.bot.values:
                if self.cantBe[c][v]:
                    continue
                if (v == playableValue) != knownPlayable:
                    self.cantBe[c][v] = True
        self.playable = knownPlayable

    def setIsValuable(self, knownValuable):
        for c in self.bot.colors:
            for v in self.bot.values:
                if self.cantBe[c][v]:
                    continue
                if self.bot.isValuable(c, v) != knownValuable:
                    self.cantBe[c][v] = True
        self.playable = knownValuable

    def setIsWorthless(self, knownWorthless):

        for c in self.bot.colors: