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)
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']
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__)
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__)
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
#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())
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
def __init__(self, player): BasePlayer.__init__(self) self.player = player self.select_pic = common.colorize(SelectPlayer.select_pic, self.player.color)
def create_players(self): for player_id in np.arange(1, self.player_number + 1): self.players[player_id] = BasePlayer(player_id)
def __init__(self, player): BasePlayer.__init__(self) self.player = player self.move = [0, 0]
def set_state(self, state): self.__dict__ = state BasePlayer.__init__(self)
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())
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)