Пример #1
0
    def run(self):
        strategy = MyStrategy()
        debug = Debug(self.writer)

        while True:
            message = model.ServerMessageGame.read_from(self.reader)

            if message.player_view is None:
                print("THE AND")
                break
            player_view = message.player_view

            #print("Level:" , player_view.game.level)

            actions = {}
            cont = 0
            for unit in player_view.game.units:
                #print("cont = ", cont , " >>  my_id", player_view.my_id)
                #print("cont = ", cont , " >>   unit", unit)
                #print("cont = ", cont , " >>units::", player_view.game.units , "XXX")
                #print("cont = ", cont , " >>game::", player_view.game , "YYY")
                cont += 1
                if unit.player_id == player_view.my_id:
                    actions[unit.id] = strategy.get_action(
                        unit, player_view.game, debug)
                else:
                    print("PLAYER:unit.position.x", unit.position.x)
                    print("PLAYER:unit.position.y", unit.position.y)
                    '''
                    print("PLAYER:unit" , unit)
                    print("PLAYER:unit.mines" , unit.mines)
                    print("PLAYER:unit.health" , unit.health)
                    print("PLAYER:unit.weapon" , unit.weapon)
                    print("PLAYER:unit.id" , unit.id)
                    print("PLAYER:unit.jump_state" , unit.jump_state)
                    print("PLAYER:unit.on_ground" , unit.on_ground)
                    print("PLAYER:unit.on_ladder" , unit.on_ladder)
                    print("PLAYER:unit.player_id" , unit.player_id)
                    print("PLAYER:unit.position" , unit.position)
                    print("PLAYER:unit.size" , unit.size)
                    print("PLAYER:unit.stand" , unit.stand)
                    print("PLAYER:unit.walked_right" , unit.walked_right)
                    print("PLAYER:unit_pos.y" , unit.position.y)
                    '''
            model.PlayerMessageGame.ActionMessage(
                model.Versioned(actions)).write_to(self.writer)
            self.writer.flush()
Пример #2
0
    def run(self):
        strategy = MyStrategy()
        debug = Debug(self.writer)

        while True:
            message = model.ServerMessageGame.read_from(self.reader)
            if message.player_view is None:
                break
            player_view = message.player_view
            actions = {}
            for unit in player_view.game.units:
                if unit.player_id == player_view.my_id:
                    actions[unit.id] = strategy.get_action(
                        unit, player_view.game, debug)
            model.PlayerMessageGame.ActionMessage(
                model.Versioned(actions)).write_to(self.writer)
            self.writer.flush()
Пример #3
0
    def run(self):
        strategy = MyStrategy()
        debug_interface = DebugInterface(self.reader, self.writer)

        while True:
            message = model.ServerMessage.read_from(self.reader)
            if isinstance(message, model.ServerMessage.GetAction):
                model.ClientMessage.ActionMessage(strategy.get_action(
                    message.player_view, debug_interface if message.debug_available else None)).write_to(self.writer)
                self.writer.flush()
            elif isinstance(message, model.ServerMessage.Finish):
                break
            elif isinstance(message, model.ServerMessage.DebugUpdate):
                strategy.debug_update(message.player_view, debug_interface)
                model.ClientMessage.DebugUpdateDone().write_to(self.writer)
                self.writer.flush()
            else:
                raise Exception("Unexpected server message")
Пример #4
0
    def run(self):
        strategy = MyStrategy()
        debug = Debug(self.writer)

        while True:
            message = model.ServerMessageGame.read_from(self.reader)
            if message.player_view is None:
                break
            player_view = message.player_view
            actions = {}
            for unit in player_view.game.units:
                if unit.player_id == player_view.my_id:
                    actions[unit.id] = strategy.get_action(
                        unit, player_view.game, debug)
                print("PLAYER:unit" , unit)
                print("PLAYER:unit.mines" , unit.mines)
                print("PLAYER:unit.health" , unit.health)
                print("PLAYER:unit.weapon" , unit.weapon)
                print("PLAYER:unit.id" , unit.id)
                print("PLAYER:unit.jump_state" , unit.jump_state)
                    
            model.PlayerMessageGame.ActionMessage(
                model.Versioned(actions)).write_to(self.writer)
            self.writer.flush()
Пример #5
0
# select_time_interval: 5min 15min 1d
# based on the trading break: 10:15-10:29, hard to adjust time interval
duration_seconds = 5 * 60
# duration_seconds = 15 * 60
# duration_seconds = 24 * 60 * 60

# backtest period
start_date = dt.date(2018, 7, 2)
end_date = dt.date(2018, 7, 26)
# aware of some special cases, say 20161111

######################################################################
# 策略编写与导入
######################################################################
from my_strategy import MyStrategy
my_strategy1 = MyStrategy()
'''
what analysis is used 
idea from XXX paper
'''

x = """
def BB(ys, w=20, k=2):

    BB_mid = SMA(ys, w)['SMA']

    # diff_square = (ys - BB_mid).apply(np.square)
    # sigma = (diff_square.rolling(window=w).mean()).apply(np.sqrt)

    sigma = ys.rolling(window=w).apply(np.std)
Пример #6
0
                probs.append(1 - extend_path_prob)

            if len(next_game_states) == 1:
                probs[0] = 1

            if not next_game_states:
                raise ValueError

            game_state = random.choice(next_game_states, p=probs)()

            unsolvable_info = self.strategy.get_unsolvable_info(
                game_state, max_pairs)

            if unsolvable_info.is_unsolvable:
                unsolvable_count += 1
                game_state = self.strategy.resolve_unsolvable_game_state(
                    game_state, unsolvable_info)

        if verbose:
            print("Unsolvable Count: ", unsolvable_count)
        if plot:
            plot_game(game_state)

        return game_state, unsolvable_count


bg = BoardGenerator(MyStrategy())

if __name__ == '__main__':
    bg.generate_board(12, plot=True, verbose=True)