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)