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 | |