def simulateResults(canvas):
    import tkMessageBox
    import scrape
    gameCounter = 0
    team1Scores = []
    team2Scores = []
    team1Wins = 0
    team2Wins = 0
    while True:
        if gameCounter > canvas.data["gameCounter"]:
            break
        setUpTeams(canvas)
        canvas.data["isSoundOn"] = False
        while canvas.data["isGameOver"] == False:
            GamePlay.runHalfInning(canvas)
        if canvas.data["Player1TotalRuns"] > canvas.data["Player2TotalRuns"]:
            team1Wins += 1
        else:
            team2Wins += 1
        team1Scores.append(canvas.data["Player1TotalRuns"])
        team2Scores.append(canvas.data["Player2TotalRuns"])
        gameCounter+= 1
    canvas.data["state"] = "endGame"
    canvas.data["displayFinalScoreBoard"] = False
    (team1StDev,team1Mean) = scrape.standardDev(team1Scores)
    (team2StDev,team2Mean) = scrape.standardDev(team2Scores)
    team1WinPercentage = round(float(team1Wins)/gameCounter,5)*100
    team2WinPercentage = round(float(team2Wins)/gameCounter,5)*100
    message = "The average runs scored per game for " + canvas.data["player1TeamName"] + " is " + str(round(team1Mean,3)) + ".\n"
    message += "The standard deviation of the runs scored per game for " + canvas.data["player1TeamName"] + " is " + str(round(team1StDev,3)) + ".\n"
    message += "The average runs scored per game for " + canvas.data["player2TeamName"] + " is " + str(round(team2Mean,3)) + ".\n"
    message += "The standard deviation of the runs scored per game for " + canvas.data["player2TeamName"] + " is " + str(round(team2StDev,3)) + ".\n"
    message += "The winning percentage for " + canvas.data["player1TeamName"] + " is " + str(team1WinPercentage) + "%.\n"
    message += "The winning percentage for " + canvas.data["player2TeamName"] + " is " + str(team2WinPercentage) + "%.\n"
    title = "Statistics"
    tkMessageBox.showinfo(title, message)
def keyPressed(event):
    canvas = event.widget.canvas
    if canvas.data["state"] == "creation":
        ################
        #### This is for team name creation purposes
        if canvas.data["team1Made"] == False:
            if (event.char >= "a" and event.char <= "z") or (event.char >= "A" and event.char <= "Z"):
                canvas.data["team1Name"] += event.char
            elif event.keysym == "BackSpace":
                if len(canvas.data["team1Name"]) > 0:
                    canvas.data["team1Name"] = canvas.data["team1Name"][:len(canvas.data["team1Name"])-1]
            elif event.keysym == "Return":
                if len(canvas.data["team1Name"]) != 0:
                    canvas.data["team1Made"] = True
        elif canvas.data["team1Made"] == True and canvas.data["teamsNamesMade"] == False:
            if (event.char >= "a" and event.char <= "z") or (event.char >= "A" and event.char <= "Z"):
                canvas.data["team2Name"] += event.char
            elif event.keysym == "BackSpace":
                if len(canvas.data["team2Name"]) > 0:
                    canvas.data["team2Name"] = canvas.data["team2Name"][:len(canvas.data["team2Name"])-1]
            elif event.keysym == "Return":
                if len(canvas.data["team2Name"]) != 0:
                    canvas.data["teamsNamesMade"] = True
                    canvas.data["teamSelectionProcess"] = True
        elif canvas.data["teamSelectionProcess"] == True:
            # go to the next page for player selection
            if event.keysym == "Down" and canvas.data["playerSelectionPage"]< canvas.data["playersPages"]:
                canvas.data["playerSelectionPage"] += 1
            elif event.keysym == "Up" and canvas.data["playerSelectionPage"] > 0 :
                canvas.data["playerSelectionPage"] -= 1
            elif event.keysym == "Return":
                # Check if player selection has been made and proceed to next pick
                if canvas.data["team1Picked"] == False and canvas.data["team1Roster"][canvas.data["positionPicking"]] != ("Empty",""):
                    #we also to remove the player for the next player
                    teamCreationGraphics.removeLastPlayerPicked(canvas)
                    canvas.data["team1Picked"] = True
                    canvas.data["playerSelectionPage"] = 0
                    canvas.data["CurrentPlayerSelected"] = None
                elif canvas.data["team1Picked"] == True and canvas.data["team2Roster"][canvas.data["positionPicking"]] != ("Empty",""):
                    # Set the table for the next position pick
                    canvas.data["team1Picked"] = False
                    canvas.data["playersAvailable"] = None
                    canvas.data["positionPicking"] += 1
                    canvas.data["playerSelectionPage"] = 0
                    canvas.data["CurrentPlayerSelected"] = None
                    if canvas.data["positionPicking"] == canvas.data["ammountOfPlayers"]:
                        canvas.data["teamSelectionProcess"] = False
                        canvas.data["fixLineupOrder"] = True
        elif canvas.data["fixLineupOrder"] == True:
            if canvas.data["currentPlayerForLineupFixing"] != None:
                #  Allows us to change the lineup order
                if event.keysym == "Down" and canvas.data["currentPlayerForLineupFixing"] < 8:
                    teamCreationGraphics.movePlayerOnRoster(canvas,"down")
                elif event.keysym == "Up" and canvas.data["currentPlayerForLineupFixing"] > 0:
                    teamCreationGraphics.movePlayerOnRoster(canvas,"up")
                if event.keysym == "Return":
                    if canvas.data["player1FixingLineup"] == True:
                        canvas.data["player1FixingLineup"] = False
                        canvas.data["currentPlayerForLineupFixing"] = None
                    else:
                        canvas.data["fixLineupOrder"] = False
                        canvas.data["exportTeams"] = True
                 
    if canvas.data["state"] == "game":
        if canvas.data["isGameOver"] == False:
            if canvas.data["duringGameHelpScreen"] == True:
                if event.keysym == "Return":
                    canvas.data["duringGameHelpScreen"] = False
            else:
                if event.keysym == "Return" and (canvas.data["changePitcher"] == True or canvas.data["changeBatter"] == True):
                    canvas.data["Player1Pause"] = False
                    canvas.data["Player2Pause"] = False
                    canvas.data["changePitcher"] = False
                    canvas.data["changeBatter"] = False
                elif event.char == "q" and canvas.data["Player2Pause"] == False and(canvas.data["changePitcher"] == False and canvas.data["changeBatter"] == False):
                    if canvas.data["Player1Pause"] == True:
                        canvas.data["Player1Pause"] = False
                    else:
                        canvas.data["Player1Pause"] = True
                elif event.char == "p" and canvas.data["Player1Pause"] == False and (canvas.data["changePitcher"] == False and canvas.data["changeBatter"] == False):
                    if canvas.data["Player2Pause"] == True:
                        canvas.data["Player2Pause"] = False
                    else:
                        canvas.data["Player2Pause"] = True
                elif event.keysym == "Right" and canvas.data["Player2Pause"] == False and canvas.data["Player1Pause"] == False:
                    GamePlay.runHalfInning(canvas)
                    if canvas.data["isGameOver"] == True:
                        canvas.data["state"] = "endGame"
                        createMainMenu(canvas)
    redrawAll(canvas)