def large_scale_debug(): #massive debug, goes in games.py
    average_player = player('{"id" : "average", "name" : "average", "batting_stars" : 2.5, "pitching_stars" : 2.5, "defense_stars" : 2.5, "baserunning_stars" : 2.5}')
    max_player = player('{"id" : "max", "name" : "max", "batting_stars" : 5, "pitching_stars" : 5, "defense_stars" : 5, "baserunning_stars" : 5}')
    min_player = player('{"id" : "min", "name" : "min", "batting_stars" : 1, "pitching_stars" : 1, "defense_stars" : 1, "baserunning_stars" : 1}')
    team_avg = team()
    team_avg.add_lineup(average_player)
    team_avg.set_pitcher(average_player)
    team_avg.finalize()
    team_max = team()
    team_max.add_lineup(max_player)
    team_max.set_pitcher(max_player)
    team_max.finalize()
    team_min = team()
    team_min.add_lineup(min_player)
    team_min.set_pitcher(min_player)
    team_min.finalize()

    average_game = game(team_avg, team_avg)
    slugging_game = game(team_max, team_min)
    shutout_game = game(team_min, team_max)

    hit_count_avg = 0
    walk_count_avg = 0
    home_run_avg = 0
    so_avg = 0
    fo_avg = 0
    go_avg = 0
    for i in range(0,10000):
        ab = average_game.at_bat()
        if ab["ishit"]:
            hit_count_avg += 1
            if ab["text"] == appearance_outcomes.homerun:
                home_run_avg += 1
        elif ab["text"] == appearance_outcomes.walk:
            walk_count_avg += 1
        elif ab["text"] == appearance_outcomes.strikeoutlooking or ab["text"] == appearance_outcomes.strikeoutswinging:
            so_avg += 1
        elif ab["text"] == appearance_outcomes.groundout:
            go_avg += 1
        elif ab["text"] == appearance_outcomes.flyout:
            fo_avg += 1
    
    hit_count_slg = 0
    walk_count_slg = 0
    home_run_slg = 0
    fo_slg = 0
    go_slg = 0
    so_slg = 0
    for i in range(0,10000):
        ab = slugging_game.at_bat()
        if ab["ishit"]:
            hit_count_slg += 1
            if ab["text"] == appearance_outcomes.homerun:
                home_run_slg += 1
        elif ab["text"] == appearance_outcomes.walk:
            walk_count_slg += 1
        elif ab["text"] == appearance_outcomes.strikeoutlooking or ab["text"] == appearance_outcomes.strikeoutswinging:
            so_slg += 1
        elif ab["text"] == appearance_outcomes.groundout:
            go_slg += 1
        elif ab["text"] == appearance_outcomes.flyout:
            fo_slg += 1

    hit_count_sht = 0
    walk_count_sht = 0
    home_run_sht = 0
    go_sht = 0
    fo_sht = 0
    so_sht = 0
    for i in range(0,10000):
        ab = shutout_game.at_bat()
        if ab["ishit"]:
            hit_count_sht += 1
            if ab["text"] == appearance_outcomes.homerun:
                home_run_sht += 1
        elif ab["text"] == appearance_outcomes.walk:
            walk_count_sht += 1
        elif ab["text"] == appearance_outcomes.strikeoutlooking or ab["text"] == appearance_outcomes.strikeoutswinging:
            so_sht += 1
        elif ab["text"] == appearance_outcomes.groundout:
            go_sht += 1
        elif ab["text"] == appearance_outcomes.flyout:
            fo_sht += 1
    
            
    return (hit_count_avg, walk_count_avg, hit_count_slg, walk_count_slg, hit_count_sht, walk_count_sht, home_run_avg, home_run_slg, home_run_sht, so_avg, so_slg, so_sht, go_avg, go_slg, go_sht, fo_avg, fo_slg, fo_sht)


#    massive debug function, companion to above. goes in the_prestige
#    elif command == "testabs":
#        result = games.large_scale_debug()
#        await msg.channel.send(f"over 10000 atbats, average player vs average pitcher achieved avg {(result[0]/(10000-result[1]))} and walk rate {result[1]/10000}.")
#        await msg.channel.send(f"over 10000 atbats, max player vs min pitcher achieved avg {(result[2]/(10000-result[3]))} and walk rate {result[3]/10000}.")
#        await msg.channel.send(f"over 10000 atbats, min player vs max pitcher achieved avg {(result[4]/(10000-result[5]))} and walk rate {result[5]/10000}.")
#        await msg.channel.send(f"""there were {result[6]}, {result[7]}, and {result[8]} home runs, respectively.
#        there were {result[9]}, {result[10]}, and {result[11]} strikeouts, respectively.
#        there were {result[12]}, {result[13]}, and {result[14]} groundouts, respectively.
#        there were {result[15]}, {result[16]}, and {result[17]} flyouts, respectively.""")


def debug_game(): #returns a game object ready to run
    average_player = player('{"id" : "average", "name" : "AJ", "batting_stars" : 2.5, "pitching_stars" : 2.5, "defense_stars" : 2.5, "baserunning_stars" : 2.5}')
    average_player2 = player('{"id" : "average", "name" : "Astrid", "batting_stars" : 2.5, "pitching_stars" : 2.5, "defense_stars" : 2.5, "baserunning_stars" : 2.5}')
    average_player3 = player('{"id" : "average", "name" : "xvi", "batting_stars" : 2.5, "pitching_stars" : 2.5, "defense_stars" : 2.5, "baserunning_stars" : 2.5}')
    average_player4 = player('{"id" : "average", "name" : "Fox", "batting_stars" : 2.5, "pitching_stars" : 2.5, "defense_stars" : 2.5, "baserunning_stars" : 2.5}')
    average_player5 = player('{"id" : "average", "name" : "Pigeon", "batting_stars" : 2.5, "pitching_stars" : 2.5, "defense_stars" : 2.5, "baserunning_stars" : 2.5}')
    max_player = player('{"id" : "max", "name" : "max", "batting_stars" : 5, "pitching_stars" : 5, "defense_stars" : 5, "baserunning_stars" : 5}')
    min_player = player('{"id" : "min", "name" : "min", "batting_stars" : 1, "pitching_stars" : 1, "defense_stars" : 1, "baserunning_stars" : 1}')
    team_avg = team()
    team_avg.name = "Arizona Aways"
    team_avg.add_lineup(average_player)
    team_avg.add_lineup(average_player2)
    team_avg.add_lineup(average_player3)
    team_avg.add_lineup(average_player4)
    team_avg.set_pitcher(average_player5)
    team_avg.finalize()
    team_avg2 = team()
    team_avg2.name = "Houston Homes"
    team_avg2.add_lineup(average_player5)
    team_avg2.add_lineup(average_player4)
    team_avg2.add_lineup(average_player3)
    team_avg2.add_lineup(average_player2)
    team_avg2.set_pitcher(average_player)
    team_avg2.finalize()
    team_min = team()
    team_min.add_lineup(min_player)
    team_min.set_pitcher(min_player)
    team_min.finalize()

    average_game = game("test", team_avg, team_avg2)
    #slugging_game = game(team_max, team_min)
    #shutout_game = game(team_min, team_max)

    return average_game