Ejemplo n.º 1
0
    def get_timed_ai_response(self, game_data):

        if self.ai_responded:
            self.player_move_event = threading.Event()
            self.ai_handler_thread = AIHandlerThread(
                kwargs={
                    'player_ai': self.player_ai,
                    'decoded_game_data': game_data,
                    'player_move_event': self.player_move_event
                })
            self.ai_handler_thread.start()

        start_time = time.time()
        self.time_response(
            self.player_move_event,
            start_time + (cc.MAXIMUM_ALLOWED_RESPONSE_TIME / 1000))
        self.turn += 1
        if self.player_move_event.is_set() and is_valid_response_time(
                start_time, time.time()):
            self.ai_responded = True
            return self.ai_handler_thread.get_move()
        else:
            print(
                "The AI timed out with a maximum allowed response time of: {0} ms"
                .format(cc.MAXIMUM_ALLOWED_RESPONSE_TIME))
            print("time ", (time.time() - start_time) * 1000)
            print("turn ", self.turn)
            self.ai_responded = False

            return Signals.NO_RESPONSE.name