def cost_blackjack(network):
    AI = Player('AI', network=network)
    stats = AI.getPlayerPerformance(10, False)
    win_rate = stats[0]
    ave_bank = stats[1]
    ave_reward = stats[2]
    cost = win_rate + ave_bank / 1000.0 + 1.1 * ave_reward
    return cost
def trainGeneration(models, epoch, mutation_rate, print_info):
    for i in range(epoch):
        max_network = getMaxNetwork(models)
        AI = Player('AI', network=max_network)
        stats = AI.getPlayerPerformance(10, False)
        win_rate = stats[0]
        ave_bank = stats[1]
        if print_info == True and i % 10 == 0:
            print("Epoch: " + str(i) + " - Win rate: " +
                  str(round(win_rate * 100.0, 1)) +
                  "% - Ave. bank (5 plays): $" + str(round(ave_bank, 2)))
        for i in range(len(models)):
            models[i] = mutateNetwork(max_network,
                                      mutation_rate * (0.60 - win_rate) / 0.60)