Пример #1
0
 def init(self):
     BasePlayer.init(self)
     self.pos = list(multiply(self.player.get_center(), common.block_size))
     self.move = [0, 0]
     self.crosshair_pic = common.colorize(BattlePlayer.crosshair_pic,
                                          self.player.color)
     self.empty_crosshair_pic = common.colorize(
         BattlePlayer.empty_crosshair_pic, self.player.color)
Пример #2
0
def fitness_evaluator(array):
    num_estimates = 10000
    base_player_list = [BasePlayer('B'), BasePlayer('C'), BasePlayer('D')]
    gm = GameManager([AdvancedPlayer('A', array)] + base_player_list)
    scores_dict, draw_count = gm.play_games(num_estimates)
    for key in scores_dict:
        scores_dict[key] /= num_estimates
    draw_rate = draw_count / num_estimates
    if draw_rate > 0.1:
        return -np.inf
    return min(scores_dict['B'], scores_dict['C'],
               scores_dict['D']) - scores_dict['A']
Пример #3
0
 def __init__(self, player_list=None):
     self.deck = Deck()
     if player_list is None:
         self.player_list = [
             BasePlayer('A'),
             BasePlayer('B'),
             BasePlayer('C'),
             BasePlayer('D')
         ]
     else:
         self.player_list = player_list
     self.game = Game(self.deck, self.player_list)
     logging.basicConfig(
         filename='log.txt',
         filemode='w',
         # format='%(asctime)s,%(msecs)d %(name)s %(levelname)s %(message)s',
         format='%(message)s',
         # datefmt='%H:%M:%S',
         level=logging.ERROR)
     self.logger = logging.getLogger(__name__)
Пример #4
0
 def __init__(self, player_list=None):
     if player_list is None:
         self.player_list = [
             BasePlayer('A'),
             BasePlayer('B'),
             BasePlayer('C'),
             BasePlayer('D')
         ]
     self.deck_manager = DeckManager()
     with open('game-board.p', 'rb') as f:
         self.board = pickle.load(f)
     with open('board_nodes_only.p', 'rb') as f:
         self.board_track_only = pickle.load(f)
     self.game = Game(self.player_list, self.board, self.board_track_only)
     logging.basicConfig(
         filename='log.txt',
         filemode='w',
         # format='%(asctime)s,%(msecs)d %(name)s %(levelname)s %(message)s',
         format='%(message)s',
         # datefmt='%H:%M:%S',
         level=logging.ERROR)
     self.logger = logging.getLogger(__name__)
Пример #5
0
    def __getitem__(self, userid):
        ''' Overrides __getitem__ to make sure the
            proper BasePlayer instance is returned
        '''

        # Typecast the userid
        userid = int(userid)

        # Is the userid already in the dictionary?
        if userid in self:

            # Return the player's instance
            return super(DictionaryOfPlayers, self).__getitem__(userid)

        # Create the player's instance
        player = self[userid] = BasePlayer(userid)

        # Assign the remove_player method
        # to delete the userid from the dictionary
        player.remove_player = self.__delitem__

        # Return the player's new instance
        return player
Пример #6
0
            #print("Player 2 Wins")
            #self.game_results()
            # track stats of player 2
            self.player1.track_game_stats()
            self.player2.track_game_stats(1)
        else:
            # print("It's a tie")
            pass

    def game_results(self):
        print("Player 1 points = {}".format(self.player1.get_total_score()))
        print("Player 2 points = {}".format(self.player2.get_total_score()))
        self.player2.track_game_stats()


if __name__ == "__main__":

    # Base vs Base
    b_player1 = BasePlayer("Player1")
    b_player2 = BasePlayer("Player2")
    f = Main(1000, b_player1, b_player2)
    f.main()


    # Roll 5 Player vs Roll 5
    r5_player1 = BasePlayer("Player1")
    r5_player2 = BasePlayer("Player2")
    g = Main(1000, r5_player1, r5_player2)

    print(b_player1.get_total_score_list())
Пример #7
0
 def init(self):
     BasePlayer.init(self)
     self.selected_castle = None
     self.selected_castle = self.available_castles()[0]
     self.selected_castle.selected = True
     self.finished = False
Пример #8
0
 def __init__(self, player):
     BasePlayer.__init__(self)
     self.player = player
     self.select_pic = common.colorize(SelectPlayer.select_pic,
                                       self.player.color)
Пример #9
0
 def create_players(self):
     for player_id in np.arange(1, self.player_number + 1):
         self.players[player_id] = BasePlayer(player_id)
Пример #10
0
 def __init__(self, player):
     BasePlayer.__init__(self)
     self.player = player
     self.move = [0, 0]
Пример #11
0
 def set_state(self, state):
     self.__dict__ = state
     BasePlayer.__init__(self)
Пример #12
0
                self.player2.get_total_score():
            #print("Player 2 Wins")
            #self.game_results()
            # track stats of player 2
            self.player1.track_game_stats()
            self.player2.track_game_stats(1)
        else:
            # print("It's a tie")
            pass

    def game_results(self):
        print("Player 1 points = {}".format(self.player1.get_total_score()))
        print("Player 2 points = {}".format(self.player2.get_total_score()))
        self.player2.track_game_stats()


if __name__ == "__main__":

    # Base vs Base
    b_player1 = BasePlayer("Player1")
    b_player2 = BasePlayer("Player2")
    f = Main(1000, b_player1, b_player2)
    f.main()

    # Roll 5 Player vs Roll 5
    r5_player1 = BasePlayer("Player1")
    r5_player2 = BasePlayer("Player2")
    g = Main(1000, r5_player1, r5_player2)

    print(b_player1.get_total_score_list())
Пример #13
0
        x0 = edge[0][0]
        y0 = edge[0][1]
        x1 = edge[1][0]
        y1 = edge[1][1]
        plt.scatter(x=np.linspace(x0 + y0 * 0.5, x1 + y1 * 0.5, dots),
                    y=np.linspace(y0 * 0.866, y1 * 0.866, dots),
                    s=0.6,
                    c=color)


if __name__ == '__main__':
    # start_time = time.time()
    # scores_dict = {'A': 0, 'B': 0, 'C': 0, 'D': 0}
    # for _ in range(10000):
    #     gm = GameManager()
    #     scores = gm.play()
    #     for key in scores_dict:
    #         scores_dict[key] += scores[key]
    # print(f'Scores: {scores_dict}.')
    # fitness = 1 - (scores_dict['A'] / min([x[1] for x in list(scores_dict.items()) if x[0] is not 'A']))
    # print(f'Fitness: {fitness}.')
    # print(time.time() - start_time)
    gm = GameManager()
    player_list = [
        BasePlayer('A'),
        BasePlayer('B'),
        BasePlayer('C'),
        BasePlayer('D')
    ]
    gm.play_repeated(player_list, 100)