Пример #1
0
 def reached_home(self):
     if self.back_home:
         raise Cheating('Player already home.')
     logger.log(ROUND, f"{self.name} made it!!")
     self.back_home = True
     self.bank += self.get_tile_values()
     self.clear_player()
Пример #2
0
 def roll(self):
     roll = (randint(1, 3) + randint(1, 3))
     moves = max(roll - self.count_tiles(), 0)
     logger.log(
         TURN,
         f'- {self.name} rolled a {roll} {"forward" if self.direction>0 else "backward"}'
         f': move {moves}!')
     return moves
 def run_n_games_and_rotate_strategies(self,
                                       n_games_per_rotation,
                                       rounds_per_game=3):
     logger.log(SIM, f'Running {n_games_per_rotation} games...')
     for n_strategy in range(len(self.strategies)):
         self.run_n_games(n_games_per_rotation, rounds_per_game)
         self.strategies = [self.strategies.pop()] + self.strategies
     self.plot_title = f"rotated strategies, {n_games_per_rotation} games per rotation, {rounds_per_game} rounds " \
                       f"per game "
Пример #4
0
 def kill(self):
     if self.back_home:
         raise Cheating('Player already home.')
     logger.log(
         ROUND,
         f"- {self.name} didn't make it, they lost {self.count_tiles()} tiles :-("
     )
     dropped_tiles = self.tiles
     self.clear_player()
     return dropped_tiles
    def plot_wins(self, save_path):  # pragma: no cover
        logger.log(SIM, 'Plotting wins...')
        wins = self.aggregate_wins()

        plot = PrettyPlot()
        plot.add_bar_chart(list(wins.values()),
                           list(wins.keys()),
                           x_axis_label='Strategies',
                           y_axis_label='Wins',
                           title=self.plot_title)
        logger.log(SIM, f'Saving plot to file "{save_path}"')
        plot.save_fig(save_path)
Пример #6
0
 def change_direction(self):
     logger.log(TURN, f'- {self.name} changed direction!')
     if self.direction == -1:
         raise Cheating('You cant turn around again you cheating bugger!')
     self.direction = -1