I am making a more advanced version of Rock Paper Scissors and I am using dictionaries to define my rules but I most of the time when I run the code I get an error message that I coded to only happen when the user types something in wrong but I get it even if I typed it correctly.
import time
import random
def game():
print('Get ready!')
computer_choice = ['rock','paper','scissors','witch','lizard']
beats = {'scissors':'paper','paper':'rock','rock':'lizard','lizard':'witch','witch':'scissors','scissors':'lizard','lizard':'paper','paper':'witch','witch':'rock','rock':'scissors'}
verbs = {'scissors':'cuts','paper':'suffocates','rock':'crushes','witch':'magics','lizard':'eats'}
time.sleep(1)
print('Rock')
time.sleep(0.75)
print('Paper')
time.sleep(0.75)
print('Scissors')
time.sleep(0.75)
print('Shoot')
player_choice = input('(Type Rock, Paper, Scissors, Witch or Lizard and then press enter)').lower()
computer_choice = random.choice(computer_choice)
time.sleep(1)
if computer_choice == player_choice:
print('Computer chose ' + computer_choice + '. You tie!')
elif beats[player_choice] == computer_choice:
print(player_choice + ' ' + verbs[player_choice] + ' ' + computer_choice)
print('Computer chose ' + computer_choice + '. You win!')
elif beats[computer_choice] == player_choice:
print('Computer chose ' + computer_choice + '. You lose!')
print(computer_choice + ' ' + verbs[computer_choice] + ' ' + player_choice)
else:
print('error')
play_again = input('Press enter to play again or X to end the game')
if play_again == "":
game()
else:
print('Thank you for playing')
game()
