from typing import Literal import logging from agent_interfaces import AgentInterface Role = Literal["chameleon", "herd"] logging.basicConfig(level=logging.WARNING) logger = logging.getLogger("chameleon") class Player: role: Role | None = None """The role of the player in the game. Can be "chameleon" or "herd". This changes every round.""" rounds_played_as_chameleon: int = 0 """The number of times the player has been the Chameleon.""" rounds_played_as_herd: int = 0 """The number of times the player has been in the Herd.""" points: int = 0 """The number of points the player has.""" def __init__( self, name: str, player_id: str, interface: AgentInterface ): self.name = name self.id = player_id self.interface = interface def assign_role(self, role: Role): self.role = role if role == "chameleon": self.rounds_played_as_chameleon += 1 elif role == "herd": self.rounds_played_as_herd += 1