def calculate_elo_vs_BigMoney(p, ngame = 50): """ Let BigMoney() have elo of 1500. Caluculate elo of some bot """ ngame = ngame pb = BigMoney() wins1, fs1 = compare_bots([p,pb],num_games=ngame,order=1) wins2, fs2 = compare_bots([pb,p],num_games=ngame,order=1) winrate = (wins1[p] + wins2[p])/(2*ngame) if winrate == 0: return 0 elif winrate == 1: return np.inf return -np.log10(1/winrate - 1)*400
def big_money_baseline(): improvements = np.zeros((30, )) counts = np.zeros((30, ), dtype='int32') for iteration in xrange(10000): game = Game.setup([BigMoney(1, 2)]) for turn in xrange(30): before_value = deck_value(game.state().all_cards()) game = game.take_turn() after_value = deck_value(game.state().all_cards()) delta = after_value - before_value improvements[turn] += delta counts[turn] += 1 if game.over(): break avg = [imp / count for imp, count in zip(improvements, counts)] print avg print counts return avg