Esempio n. 1
0
 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()
Esempio n. 2
0
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)
Esempio n. 4
0
 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)
Esempio n. 5
0
 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)
Esempio n. 6
0
 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))
Esempio n. 8
0
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()
Esempio n. 9
0
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
Esempio n. 10
0
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)
Esempio n. 11
0
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]
Esempio n. 12
0
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()