``````from random import randint

while True:
print """ \n\n\n\n\n\n\n
____   ___   ____ _  __   ____   _    ____  _____ ____
|  _ \ / _ \ / ___| |/ /  |  _ \ / \  |  _ \| ____|  _ \
| |_) | | | | |   | ' /   | |_) / _ \ | |_) |  _| | |_) |
|  _ <| |_| | |___| . \   |  __/ ___ \|  __/| |___|  _ <
|_| \_\\___/ \____|_|\_\  |_| /_/   \_\_|   |_____|_| \_\

____   ____ ___ ____  ____   ___  ____  ____
/ ___| / ___|_ _/ ___|/ ___| / _ \|  _ \/ ___|
\___ \| |    | |\___ \\___ \| | | | |_) \___ \
___) | |___ | | ___) |___) | |_| |  _ < ___) |
|____/ \____|___|____/|____/ \___/|_| \_\____/\n\n"""
1. Rock, Paper, Scissors
0. Exit

break
else:
print "\n\tInvalid Entry"

def match(choice1, choice2):
if choice1 == choice2:
print "You have a match, the computer wins."
raw_input("Press Enter to continue")

def resetScores(user, comScore, gamez):
user = 0
comScore = 0
gamez = 0

def firstChooserWins( chooserChoice, otherChoice ):

if chooserChoice == "Rock" and otherChoice == "Scissors":
return True
elif chooserChoice == "Paper" and otherChoice == "Rock":
return True
elif chooserChoice == "Scissors" and otherChoice == "Paper":
return True
else:
return False

def new(count, countL, game):

if count == game:
print "You win against the computer"
return True
elif countL == game:
print "The Computer has beatin your ass"
return True
else:
print "keep playing to win"
return False

def same(a,b):
if same(countWins, games):
return False
if same(countLost, games):
return True

def playGame():
choice = { 1:"Rock", 2:"Paper", 3:"Scissors" }
countWins = 0
countLost = 0
totalGames = countWins + countLost
if totalGames > 0:
return False
com = "The Computer has won\nThe Computer has won\nThe Computer has won\n"
you = "You have beatin the computer, congratulations\nYou have beatin the computer, congratulations\nYou have beatin the computer, congratulations\n"

if totalGames == 0:
userBestOf = float(raw_input("""
How many games would you like to
play best of with the computer? """))

Avg = userBestOf / 2
games = Avg + 1

print "\tFirst player to %d Wins! " %games

playerPick = int(raw_input("""
Enter choice:
0 : Quit
1 : Rock
2 : Paper
3 : Scissors

if playerPick == 0:
break

if playerPick not in choice.keys():
print "\tInvalid choice"
continue

playerChoice = choice[playerPick]
computerChoice = choice[randint(1,3)]

print "\tYou chose %s, the computer chose %s" % ( playerChoice, computerChoice )

if firstChooserWins( playerChoice, computerChoice ):
print "\tYou have won this round!"
countWins += 1
else:
print "\tYou lose!"
countLost += 1

totalGames += 1
if match(playerChoice, computerChoice) == 1:
countLost - 1
return countLost

print "\tYou have Won: ",countWins
print "\tComputer has Won: ",countLost
print "\tTotal Games: ",totalGames
print "\tFirst player to %d Wins! " %games

print "\tKeep playing, first to %d wins." % games
if countWins == games:
print you
raw_input("Press Enter to exit")
resetScores(countWin, countLost, games)

if countLost == games:
print com
raw_input("Press Enter to exit")
resetScores(countWin, countLost, games)
raw_input("\n\tPress Enter to continue\n\n\n\n")

def main():
playGame()
main()``````

Ive written this program and it works correctly until it get to the player playing another game against the computer
the loop does not work i think

Any help would be great

Thanks

4
Contributors
3
Replies
4
Views
7 Years
Discussion Span
Last Post by pyTony
``````if countLost == games:
print com
raw_input("Press Enter to exit")
resetScores(countWin, countLost, games)
raw_input("\n\tPress Enter to continue\n\n\n\n")``````

If I pressed enter with the last raw_input, nothing would have happened because their is no other command after that one.

I changed a few things (see the comments starting with #!!!) and added a loop. It seems to work, but there is still place for improvement.

``````from random import randint

while True:
print """ \n\n\n\n\n\n\n
____   ___   ____ _  __   ____   _    ____  _____ ____
|  _ \ / _ \ / ___| |/ /  |  _ \ / \  |  _ \| ____|  _ \
| |_) | | | | |   | ' /   | |_) / _ \ | |_) |  _| | |_) |
|  _ <| |_| | |___| . \   |  __/ ___ \|  __/| |___|  _ <
|_| \_\\___/ \____|_|\_\  |_| /_/   \_\_|   |_____|_| \_\

____   ____ ___ ____  ____   ___  ____  ____
/ ___| / ___|_ _/ ___|/ ___| / _ \|  _ \/ ___|
\___ \| |    | |\___ \\___ \| | | | |_) \___ \
___) | |___ | | ___) |___) | |_| |  _ < ___) |
|____/ \____|___|____/|____/ \___/|_| \_\____/\n\n"""
1. Rock, Paper, Scissors
0. Exit

break
else:
print "\n\tInvalid Entry"

def match(choice1, choice2):
if choice1 == choice2:
print "\tYou have a match, the computer wins."
#raw_input("Press Enter to continue") #!!! we don't need this
return choice1 == choice2 # !!! return True or False to allow "if match(...)"

#def resetScores(user, comScore, gamez): #!!! removed this, it won't work
#    user = 0
#    comScore = 0
#    gamez = 0

def firstChooserWins( chooserChoice, otherChoice ):

if chooserChoice == "Rock" and otherChoice == "Scissors":
return True
elif chooserChoice == "Paper" and otherChoice == "Rock":
return True
elif chooserChoice == "Scissors" and otherChoice == "Paper":
return True
else:
return False

def new(count, countL, game):

if count == game:
print "You win against the computer"
return True
elif countL == game:
print "The Computer has beatin your ass"
return True
else:
print "keep playing to win"
return False

def same(a,b):
if same(countWins, games):
return False
if same(countLost, games):
return True

def showScores(countWins, countLost, totalGames, games):
print "\tYou have Won: ",countWins
print "\tComputer has Won: ",countLost
print "\tTotal Games: ",totalGames
print "\tFirst player to %d Wins! " %games

def playGame():
choice = { 1:"Rock", 2:"Paper", 3:"Scissors" }
countWins = 0
countLost = 0
totalGames = countWins + countLost
if totalGames > 0:
return False
com = "The Computer has won\nThe Computer has won\nThe Computer has won\n"
you = "You have beatin the computer, congratulations\nYou have beatin the computer, congratulations\nYou have beatin the computer, congratulations\n"

if totalGames == 0:
userBestOf = int(raw_input("""
How many games would you like to
play best of with the computer? """)) #!!! changed float to int

#Avg = userBestOf / 2
games = (userBestOf + 1)/2

print "\tFirst player to %d Wins! " %games

while max(countWins, countLost) < games:
showScores(countWins, countLost, totalGames, games)
print max(countWins, countLost), games
playerPick = int(raw_input("""
Enter choice:
0 : Quit
1 : Rock
2 : Paper
3 : Scissors

if playerPick == 0:
return

if playerPick not in choice.keys():
print "\tInvalid choice"
continue

playerChoice = choice[playerPick]
computerChoice = choice[randint(1,3)]

print "\tYou chose %s, the computer chose %s" % ( playerChoice, computerChoice )

if firstChooserWins( playerChoice, computerChoice ):
print "\tYou have won this round!"
countWins += 1
elif match(playerChoice, computerChoice): #!!! moved this test
countLost += 1
else:
print "\tYou lose!"
countLost += 1

totalGames += 1

# print "\tKeep playing, first to %d wins." % games #!!! we don't need this
if countWins == games:
print you
else:
print com
countWin, countLost, games = 0, 0, 0
raw_input("\n\tPress Enter to continue\n\n\n\n")

def main():
playGame()
main()``````

Can you mark solved or tell what is still unclear/post results?

This topic has been dead for over six months. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.