6. Exercise: Paper, Scissors, Stone game

Let's use what we have learn so far to build a simple game: Paper, Scissors, Stone.

First, we want to map out the logic of the game, which will help us build a series of if...elsif... statements. There can only be finite number of results, as shown below:

Now, we are ready to capture the above logic into a series of if...elsif... statements:

if human== "paper" and computer  == "scissors":
  print("You lose")
elif human== "paper" and computer == "stone":
  print("You win")
elif human== "paper" and computer == "paper":
  print("Draw")
elif human== "scissors" and computer == "paper":
  print("You win")
elif human== "scissors" and computer == "stone":
  print("You lose")
elif human== "scissors" and computer == "scissors":
  print("Draw")
elif human== "stone" and computer == "scissors":
  print("You win")
elif human== "stone" and computer == "paper":
  print("You lose")
elif human== "stone" and computer == "stone":
  print("Draw")

You can also add a user input using input() function, randomized the computer choice using random.randin() function, as well as adding an else "end all" condition to improve the game:

import random

human = input("Your choice? ")

comp = random.randint(1,3)
if comp==1:
  computer = "paper"
elif comp==2:
  computer = "scissors"
elif comp==3:
  computer = "stone"
print("Computer choice: " + computer)

if human== "paper" and computer  == "scissors":
  print("You lose")
elif human== "paper" and computer == "stone":
  print("You win")
elif human== "paper" and computer == "paper":
  print("Draw")
elif human== "scissors" and computer == "paper":
  print("You win")
elif human== "scissors" and computer == "stone":
  print("You lose")
elif human== "scissors" and computer == "scissors":
  print("Draw")
elif human== "stone" and computer == "scissors":
  print("You win")
elif human== "stone" and computer == "paper":
  print("You lose")
elif human== "stone" and computer == "stone":
  print("Draw")
else:
  print("Invalid input.")

Last updated