Odd behavior with Rock Paper Scissor game - Printable Version +- Python Forum (https://python-forum.io) +-- Forum: Python Coding (https://python-forum.io/forum-7.html) +--- Forum: General Coding Help (https://python-forum.io/forum-8.html) +--- Thread: Odd behavior with Rock Paper Scissor game (/thread-29303.html) |
Odd behavior with Rock Paper Scissor game - DustinKlent - Aug-27-2020 I am following a tutorial for a rock paper scissor game and I made some changes to it to stray from the tutorial. Everything works except for the fact that sometimes the random choice doesn't appear to pick a choice and the score is not tabulated. Here's the code I have, please help me identify what is going wrong: import random import sys print("Rock, Paper, Scissors") wins = 0 losses = 0 ties = 0 while True: print('%s Wins, %s Losses, %s Ties' % (wins, losses, ties)) while True: playermove = input( "Enter your move: r(ock), (p)aper, (s)cissors or q(uit): ") if playermove == "q": print("Thanks for playing!") sys.exit() if playermove == "r" or playermove == "p" or playermove == "s": break else: print("Please type a valid character.") if playermove == "r": print("Rock versus...") if playermove == "S": print("Scissors versus...") if playermove == "p": print("Paper versus...") choices = ("r", "s", "P") compmove = random.choice(choices) if compmove == "r": print("Rock") elif compmove == "s": print("Scissors") elif compmove == "p": print("Paper") if playermove == compmove: print("It is a tie!") ties += 1 elif playermove == "r" and compmove == "s": print("You win!") wins += 1 elif playermove == 'p' and compmove == 'r': print('You win!') wins += 1 elif playermove == 's' and compmove == 'p': print('You win!') wins += 1 elif playermove == 'r' and compmove == 'p': print('You lose!') losses += 1 elif playermove == 'p' and compmove == 's': print('You lose!') losses += 1 elif playermove == 's' and compmove == 'r': print('You lose!') losses += 1 RE: Odd behavior with Rock Paper Scissor game - bowlofred - Aug-27-2020 Comparisons are case-sensitive. On lines 25 and 30, you've used capital letters, and everywhere else lower-case. That's going to cause problems. When the computer picks "P", none of the comparisons will match, and you don't have a else condition to catch that none of the other ones matched.
RE: Odd behavior with Rock Paper Scissor game - DustinKlent - Aug-27-2020 Thank you. Not sure how I missed that. |