Python Forum
Rock Paper Scissors Game, I need help. - Printable Version

+- Python Forum (https://python-forum.io)
+-- Forum: Python Coding (https://python-forum.io/forum-7.html)
+--- Forum: Game Development (https://python-forum.io/forum-11.html)
+--- Thread: Rock Paper Scissors Game, I need help. (/thread-16094.html)



Rock Paper Scissors Game, I need help. - extraguac - Feb-14-2019

Hello,

I recently started learning python and I'm having lots of fun!
I made a very very simple, beginner game of Rock Paper Scissors, but I've hit a roadblock.

I tried to implement a sort of "error-detection" system where if either player types anything other than "rock", "paper", "scissors", the result will print "Please type correct choices!"
However, no matter what I type, I end up getting "Please type correct choices!" message.

Can you guys help me where I messed up my code? I'm assuming that I messed up line 8...

I appreciate your help!

print("Welcome to the great game of Rock Paper Scissors!")
print("Here is the rule.\nPlayer 1 enters his/her choice.\nPlayer 2 enters his/her choice.\n")

p1 = input("Player 1, please enter your choice: ").lower()
p2 = input("Player 2, please enter your choice: ").lower()


if p1 == ("rock" or "paper" or "scissors") and p2 == ("rock" or "paper" or "scissors"):
	if p1 == p2:
		print("It's a tie!")
	elif p1 == "rock":
		if p2 == "paper":
			print("Player 2 wins!")
		else:
			print("Player 1 wins!")
	elif p1 == "paper":
		if p2 =="scissors":
			print("Player 2 wins!")
		else:
			print("Player 1 wins!")
	elif p1 == "scissors":
		if p2 == "rock":
			print("Player 2 wins!")
		else:
			print("Player 1 wins!")	
else:
	print("Please type correct choices!")



RE: Rock Paper Scissors Game, I need help. - ichabod801 - Feb-14-2019

You are using the or operator wrong. You need to have an expression on each side of the or (see here for details). What you want is:

valid = ('rock', 'paper', 'scissors')
if p1 in valid and p2 in valid:



RE: Rock Paper Scissors Game, I need help. - extraguac - Feb-14-2019

(Feb-14-2019, 04:04 AM)ichabod801 Wrote: You are using the or operator wrong. You need to have an expression on each side of the or (see here for details). What you want is:

valid = ('rock', 'paper', 'scissors')
if p1 in valid and p2 in valid:

Thank you so much for your help! I now know what I did wrong. Thank you again.