def run_engine(self): '''launches the engine''' logger.info('running game #%d', self.game_info.game_id) logger.info('launching engine') game_engine = GameSimulator(self.players, self.jury_state, self.game_info) logger.info('starting game') self.game_controller = game_engine.play() logger.info('writing logs') logger.info('game #%d finished', self.game_info.game_id) self._write_logs()
def play(args): from game_simulator import GameSimulator from tournament_stages.game_signature import GameSignature from bot import ExecuteError players = list(create_players(args.bot_commands_file)) signature = GameSignature(1, 1, 1, 1) jury_state = next(get_js(len(players))) copied_js = copy.deepcopy(jury_state) game = GameSimulator(players, copied_js, signature) try: game_controller = game.play() return game_controller except ExecuteError: pass
def setUp(self): signature = GameSignature() players = [Player(command_line) for command_line in BOTS] generator = config.Generator() start_states = list(generator.generate_start_positions(signature, players)) start_state = random.choice(start_states) self._simulator = GameSimulator(players, start_state, signature)
def test_illegal_M_value(self): try: gs = GameSimulator("nim", G=1, P=1, M=0, N=10, K=0, verbose=False) # Initialization did not throw AssertionError: Test failed self.assertTrue(False) except AssertionError: # Initialization threw AssertionError: Test passed self.assertTrue(True)
def test_illegal_P_value(self): try: gs = GameSimulator("ledge", G=-1, B=[2, 2, 0, 1, 0, 2, 0, 0, 1, 0], P=5, M=100, verbose=False) # Initialization did not throw AssertionError: Test failed self.assertTrue(False) except AssertionError: # Initialization threw AssertionError: Test passed self.assertTrue(True)
def test_illegal_game_value(self): try: gs = GameSimulator("this is an illegal value for game", G=100, B=[0, 0, 0, 1, 0, 2, 0, 0, 1, 0], P=1, M=100, verbose=False) # Initialization did not throw AssertionError: Test failed self.assertTrue(False) except AssertionError: # Initialization threw AssertionError: Test passed self.assertTrue(True)
class GameModulesIntegrationTests(unittest.TestCase): def setUp(self): signature = GameSignature() players = [Player(command_line) for command_line in BOTS] generator = config.Generator() start_states = list(generator.generate_start_positions(signature, players)) start_state = random.choice(start_states) self._simulator = GameSimulator(players, start_state, signature) def test_that_game_is_finished(self): controller = self._simulator.play() self.assertTrue(controller.is_finished) def test_that_scores_exists_for_each_player(self): controller = self._simulator.play() scores = controller.get_scores() players = self._simulator.get_players() self.assertEqual(set(scores.keys()), set(players))
def run(): gs = GameSimulator(game="nim", G=10, P=1, M=500, N=10, K=3, c=1, verbose=True) # gs = GameSimulator( # game="ledge", # G=10, # B=[0, 0, 0, 1, 0, 2, 0, 0, 1, 0], # P=1, # M=500, # c=1, # verbose=True # ) gs.run_batch()
class PlayoffSimulator(object): game_simulator = GameSimulator() series_simulator = SeriesSimulator(game_simulator) # simulate conference def sim_conference(self, seed1, seed2, seed3, seed4, seed5, seed6, seed7, seed8): # round 1 r1_w1 = self.series_simulator.simulate_series(seed1, seed8) r1_w2 = self.series_simulator.simulate_series(seed2, seed7) r1_w3 = self.series_simulator.simulate_series(seed3, seed6) r1_w4 = self.series_simulator.simulate_series(seed4, seed5) # round 2 r2_w1 = self.series_simulator.simulate_series(r1_w1, r1_w4) r2_w2 = self.series_simulator.simulate_series(r1_w2, r1_w3) # round 3 (conference finals) conf_champ = self.series_simulator.simulate_series(r2_w1, r2_w2) return conf_champ def sim_playoffs(self, east_teams, west_teams): # simulate conferences east_champ = self.sim_conference(east_teams[0], east_teams[1], east_teams[2], east_teams[3], east_teams[4], east_teams[5], east_teams[6], east_teams[7]) west_champ = self.sim_conference(west_teams[0], west_teams[1], west_teams[2], west_teams[3], west_teams[4], west_teams[5], west_teams[6], west_teams[7]) # simulate stanley cup final # for simulation purposes, determine home ice with a coin flip flip = np.random.uniform(0, 1, 1) if (flip[0] < 0.5): champ = self.series_simulator.simulate_series( east_champ, west_champ) else: champ = self.series_simulator.simulate_series( west_champ, east_champ) return champ
import pandas as pd import numpy as np import matplotlib.pyplot as plt plt.style.use('ggplot') from game_simulator import GameSimulator # instantiate our core game simulator game_simulator = GameSimulator() # setup lists used for analysis of results all_home_goals = [] all_away_goals = [] all_home_wins = [] all_away_wins = [] all_home_OTLs = [] all_away_OTLs = [] all_home_SOLs = [] all_away_SOLs = [] for x in range(0, 10000): home_goals, away_goals, home_wins, away_wins, home_OTLs, away_OTLs, home_SOLs, away_SOLs, event_chart = game_simulator.simulate_game_poisson( 3.6, 3, 3.6, 3, False, False, False) all_home_goals.append(home_goals) all_away_goals.append(away_goals) all_home_wins.append(home_wins) all_away_wins.append(away_wins) all_home_OTLs.append(home_OTLs) all_away_OTLs.append(away_OTLs) all_home_SOLs.append(home_SOLs) all_away_SOLs.append(away_SOLs)
import numpy as np import pandas as pd from game_simulator import GameSimulator from series_simulator import SeriesSimulator from playoff_simulator import PlayoffSimulator from team import Team # instantiate our core game simulator game_simulator = GameSimulator() series_simulator = SeriesSimulator(game_simulator) east1 = Team('East1', 3.5, 2.7) east2 = Team('East2', 3.4, 2.8) east3 = Team('East3', 3.4, 3.0) east4 = Team('East4', 3.3, 3.0) east5 = Team('East5', 3.3, 3.1) east6 = Team('East6', 3.2, 3.0) east7 = Team('East7', 3.2, 3.1) east8 = Team('East8', 3.1, 3.1) west1 = Team('West1', 3.5, 2.7) west2 = Team('West2', 3.4, 2.8) west3 = Team('West3', 3.4, 3.0) west4 = Team('West4', 3.3, 3.0) west5 = Team('West5', 3.3, 3.1) west6 = Team('West6', 3.2, 3.0) west7 = Team('West7', 3.2, 3.1) west8 = Team('West8', 3.1, 3.1) east_teams = [east1, east2, east3, east4, east5, east6, east7, east8] west_teams = [west1, west2, west3, west4, west5, west6, west7, west8]
from utils import init_logger, load_config from game_simulator import GameSimulator if __name__ == '__main__': init_logger() config = load_config("configs/config.yaml") game_simulator = GameSimulator(config["Game Simulator"]) game_simulator.simulate()