Beispiel #1
0
 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)
Beispiel #2
0
 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()
Beispiel #3
0
 def get_name(self):
     if self.registered:
         return self.player.get_name()
     raise PlayerStateViolation("Player has not been registered yet")
Beispiel #4
0
 def register(self):
     if self.registered:
         raise PlayerStateViolation("Player has already been registered")
     self.registered = True
     return self.player.register()
Beispiel #5
0
 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)
Beispiel #6
0
 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)