def start_server(decision_func, fitness_evaluator): """ Sets up and starts the Agent server and triggers the start of a run on the Breezy server. """ # start the Agent server in other thread print("Agent Server starting at {}:{}...".format(opts.agentIp, opts.agentPort)) agentHandler = HTTPServer((opts.agentIp, int(opts.agentPort)), ServerHandler) # Set GA functions agentHandler._decision_func = decision_func agentHandler._fitness_evaluator = fitness_evaluator thread = threading.Thread(target=agentHandler.serve_forever) thread.daemon = True thread.start() print("Agent server started.") # create a run config for this agent, to run 1 game, send to breezy server startData = {"agent": "NEAT Agent", "size": 1} # tell breezy server to start the run response = requests.post(url="http://{}:{}/run/".format( opts.breezyIp, opts.breezyPort), data=json.dumps(startData)) print(response) """ Declare variables global that you want the agent server to have access to. """ global breezyIp global breezyPort breezyIp = opts.breezyIp breezyPort = opts.breezyPort global features # serve until told to stop (end of the game) global keep_server_up keep_server_up = True while keep_server_up: pass stop_game() thread.join() return fitness_evaluator.final_evaluation()