Introduction

In this project you will make a Rock, Paper, Scissors game and play against the computer.

Rules: You and the computer both choose rock, paper or scissors. The winner is decided by these rules:

  • Rock blunts scissors
  • Paper covers rock
  • Scissors cut paper

Step 1: Player’s Turn

First, let the player choose Rock, Paper or Scissors.

Activity Checklist

  • Open this trinket: jumpto.cc/rps-go.

  • The project already contains the code to import a function that you are going to use in this project.

screenshot
screenshot

You’ll use randint later to generate random numbers.

  • First, let the player choose Rock, Paper or Scissors by typing the letter ‘r’, ‘p’ or ‘s’.
screenshot
screenshot
  • Now print out what the player chose:
screenshot
screenshot
  • Test your code by clicking Run. Click in the trinket output window and enter your choice.

Step 2: Computer’s Turn

Now it’s the computer’s turn. You can use the randint function to generate a random number to decide between rock, paper and scissors.

Activity Checklist

  • Use randint to generate a random number to decide whether the computer has chosen rock, paper or scissors.
screenshot
screenshot
  • Run your script lots of times (you’ll need to enter ‘r’, ‘p’ or ‘s’ each time.)

You should see that ‘chosen’ is randomly set to either 1, 2 or 3.

  • Let’s say:

  • 1 = rock (r)
  • 2 = paper (p)
  • 3 = scissors (s)

Use if to check if the chosen number is 1 (== is used to see if 2 things are the same).

screenshot
screenshot
  • Python uses indentation (moving the code to the right) to show which code is inside the if. You can either use two spaces (tap the spacebar twice) or tap the tab key (usually above CAPSLOCK on the keyboard.)

Set computer to ‘r’ inside the if using indentation:

screenshot
screenshot
  • You can add an alternative check using elif (short for else if):
screenshot
screenshot

This condition will only be checked if the first condition fails (if the computer didn’t choose 1)

  • And finally, if the computer didn’t choose 1 or 2 then it must have chosen 3.

This time we can just use else which means otherwise.

screenshot
screenshot
  • Now, instead of printing out the random number that the computer chose you can print the letter.
screenshot
screenshot

You can either delete the line print(chosen), or make the computer ignore it by adding a # at the start of the line.

  • Test your code by clicking Run and choosing your option.

  • Hmm, the computer’s choice gets printed on a new line. You can fix that by adding end=' ' after vs, that tells Python to end with a space instead of a new line.

screenshot
screenshot
  • Play the game a few times by clicking Run and making a choice.

For now you’ll have to work out who won yourself. Next you’ll add the Python code to work this out.

Save Your Project

Step 3: Check the Result

Now let’s add the code to see who won.

Activity Checklist

  • You need to compare the player and computer variables to see who won.

If they’re the same then it’s a draw:

screenshot
screenshot
  • Test your code by playing the game a few times until you get a draw.

You’ll need to click Run to start a new game.

  • Now let’s look at the cases where the player chose ‘r’ (rock) but the computer didn’t.

If the computer chose ‘s’ (scissors) then the player wins (rock beats scissors).

If the computer chose ‘p’ (paper) then the computer wins (paper beats rock).

We can check the player choice and the computer choice using and.

screenshot
screenshot
  • Next let’s look at the cases where the player chose ‘p’ (paper) but the computer didn’t:
screenshot
screenshot
  • And finally, can you add the code to check for the winner when the player chose ‘s’ (scissors) and the computer chose rock or paper?

  • Now play the game to test your code.

screenshot
screenshot

Click Run to start a new game.

Save Your Project

Challenge: ASCII Art

Instead of using the letters r, p and s to represent rock, paper and scissors, can you use ASCII art?

For example:

screenshot
screenshot

Where:

rock: O
paper: ___
scissors: >8
  • Instead of saying print computer you’ll need to add a new line to each of the options in the if to print out the correct ASCII art.

Hints:

screenshot
screenshot
screenshot
screenshot
  • Instead of saying print player you’ll need to add a new if statement to check which item the player chose and print out the correct ASCII art:

Hint:

screenshot
screenshot

Remember that adding end=' ' to the end of a print makes it end with a space instead of a new line.

Save Your Project

Challenge: Create a new game

Can you create your own game like Rock, Paper, Scissors with different objects?

Click the ‘Duplicate’ button to make a copy of your Rock, Paper Scissors project to start from.

This example uses Fire, Logs and Water:

screenshot
screenshot

Save Your Project