def receive_stones(self, stone: str): if not self.registered: raise PlayerStateViolation("Player has not been registered yet") if self.received: raise PlayerStateViolation("Player has received stones") self.received = True self.ended = False self.player.receive_stones(stone)
def end_game(self): print("state : end game") if self.ended: raise PlayerStateViolation("Player has already been notified of game end") self.ended = True self.received = False return self.player.end_game()
def get_name(self): if self.registered: return self.player.get_name() raise PlayerStateViolation("Player has not been registered yet")
def register(self): if self.registered: raise PlayerStateViolation("Player has already been registered") self.registered = True return self.player.register()
def set_strategy(self, strategy: PlayerStrategy): if self.has_strategy: raise PlayerStateViolation("Strategy Player has already received a strategy") self.has_strategy = True self.player.set_strategy(strategy)
def make_move(self, boards: List): if not self.received: raise PlayerStateViolation("Player asked to make a move but has not received stones") if self.ended: raise PlayerStateViolation("Player asked to make a move but has already been notified of end game") return self.player.make_move(boards)