Girls Programming Network. Scissors Paper Rock!

Similar documents
Rock, Paper, Scissors

Girls Programming Network. Sassy Security Chatbots! Extensions!

Where's the Treasure?

Part II: Number Guessing Game Part 2. Lab Guessing Game version 2.0

In this project you ll learn how to create a times table quiz, in which you have to get as many answers correct as you can in 30 seconds.

Unit 5: What s in a List

2: Turning the Tables

In this project, you will create a memory game where you have to memorise and repeat a sequence of random colours!

Funny Money. The Big Idea. Supplies. Key Prep: What s the Math? Valuing units of money Counting by 5s and 10s. Grades K-2

Welcome to Family Dominoes!

In this project you will learn how to write a Python program telling people all about you. Type the following into the window that appears:

Brain Game. Introduction. Scratch

Before displaying an image, the game should wait for a random amount of time.

G51PGP: Software Paradigms. Object Oriented Coursework 4

Memory. Introduction. Scratch. In this project, you will create a memory game where you have to memorise and repeat a sequence of random colours!

Project 1: A Game of Greed

Create Your Own World

Would You Like To Earn $1000 s With The Click Of A Button?

Online Courses with the Writers Workshop

Taffy Tangle. cpsc 231 assignment #5. Due Dates

Kim Klaver s Recruiting By Phone Clinic INTERVIEW QUESTION CRIBSHEET. Kim Klaver. Recruiting Little Bananas and Big Bananas

In this project, you ll learn how to create 2 random teams from a list of players. Start by adding a list of players to your program.

In this project you ll learn how to create a game, in which you have to match up coloured dots with the correct part of the controller.

Venn Diagram Problems

UCAS Progress 2019 Entry Step by Step Guide

GO mental. Rules of the Game

Ready? Turn over to get started and let s do this!

(Provisional) Lecture 31: Games, Round 2

3 0 S E C O N D Q U I C K S T A R T To start playing right away, read this page.

Project 2 - Blackjack Due 7/1/12 by Midnight

Card Racer. By Brad Bachelor and Mike Nicholson

G54GAM Lab Session 1

Grade 8 Math Assignment: Probability

Inventor: 2009 manuela&wiesl

ADVANCED COMPETITIVE DUPLICATE BIDDING

CMPT 125/128 with Dr. Fraser. Assignment 3

Final Project: Reversi

Would You Like To Earn $1000 s With The Click Of A Button?

CPSC 217 Assignment 3 Due Date: Friday March 30, 2018 at 11:59pm

CS 210 Fundamentals of Programming I Fall 2015 Programming Project 8

(Children s e-safety advice) Keeping Yourself Safe Online

LET S PLAY PONTOON. Pontoon also offers many unique payouts as well as a Super Bonus of up to $5000 on certain hands.

pla<orm-style game which you can later add your own levels, powers and characters to. Feel free to improve on my art

Once this function is called, it repeatedly does several things over and over, several times per second:

AIM OF THE GAME GLACIER RACE. Glacier Race. Ben Gems: 20. Laura Gems: 13

CSE231 Spring Updated 04/09/2019 Project 10: Basra - A Fishing Card Game

Mac 6-Pack Training Games Vol2 Help

Walkthrough for College Life v0.0.5a by MikeMasters

CS 210 Fundamentals of Programming I Spring 2015 Programming Assignment 8

Ok, we need the computer to generate random numbers. Just add this code inside your main method so you have this:

In this project you ll learn how to create a game in which you have to save the Earth from space monsters.

SIMPLE POP ART EFFECT

Practice Midterm Exam 5

Bouncy Dice Explosion

Scratch for Beginners Workbook

Assignment II: Set. Objective. Materials

Would You Like To Earn $1000 s With The Click Of A Button?

BOOM! subtract 15. add 3. multiply by 10% round to. nearest integer. START: multiply by 2. multiply by 4. subtract 35. divide by 2

CPSC 217 Assignment 3

25 minutes 10 minutes

Bouncy Dice Explosion

Begin contract bridge with Ross Class Three. Bridge customs.

A card game for 2-8 players play time mins

5: The Robots are Coming!

Slayer. Documentation. Versions 2.0+ by Greek2me

Sample file BEGINNINGS. WATCHTOWER ALERT: Making Features with Pathways. PLAY ADVICE: Pathways & Larger Groups

Suggest holding off until next time you visit, so you can ask your parents first.

Clever Hangman. CompSci 101. April 16, 2013

Make better decisions. Learn the rules of the game before you play.

Kindness Sacrifices Self

Score Boards (Connect the two boards with single digits at the joint section)

Math Fundamentals for Statistics (Math 52) Unit 2:Number Line and Ordering. By Scott Fallstrom and Brent Pickett The How and Whys Guys.

Lesson 3: Arduino. Goals

Mod Kit Instructions

PebblePad LEARNER HANDBOOK

UNDERSTANDING LAYER MASKS IN PHOTOSHOP

Some code for this game has been provided for you. Open this trinket: This is a very basic RPG game that only has 2 rooms. Here s a map of the game:

Physics 3 Lab 5 Normal Modes and Resonance

Number Addition and subtraction

10 Strategies To Help

Programming Languages and Techniques Homework 3

Pony Primer. Getting Started

CS151 - Assignment 2 Mancala Due: Tuesday March 5 at the beginning of class

Pony Primer. Getting Started

Ghostbusters. Level. Introduction:

Attitude. Founding Sponsor. upskillsforwork.ca

Game Making Workshop on Scratch

Speaking Notes for Grades 4 to 6 Presentation

Create a game in which you have to guide a parrot through scrolling pipes to score points.

The Sweet Learning Computer

Clone Wars. Introduction. Scratch. In this project you ll learn how to create a game in which you have to save the Earth from space monsters.

COMPUTING CURRICULUM TOOLKIT

How to get more quality clients to your law firm

The Online Appointment: How to Use the System and Why We Think It s Cool

Smyth County Public Schools 2017 Computer Science Competition Coding Problems

R.A.P. To Rock KeyModel

Sudoku Tutor 1.0 User Manual

Installation guide. Activate. Install your Broadband. Install your Phone. Install your TV. 1 min. 30 mins

THE EQUATION by Ruth Cantrell

LEVEL A: SCOPE AND SEQUENCE

Transcription:

Girls Programming Network Scissors Paper Rock!

This project was created by GPN Australia for GPN sites all around Australia! This workbook and related materials were created by tutors at: Sydney, Canberra and Perth Girls Programming Network If you see any of the following tutors don t forget to thank them!! Writers Sarah Mac Renee Noble Vivian Dang Courtney Ross Testers Catherine Murdoch 1

Part 0: Setting up Task 0.1: Making a python file Open the start menu, and type IDLE. Select IDLE 3.6. Go to the file menu. Select new file. This opens a new window. Go to the file menu. Save as and save the file as SPR.py Task 0.2: You ve got a blank space, so write your name! At the top of the file use a comment to write your name! Any line starting with # is a comment. # This is a comment CHECKPOINT If you can tick all of these off you can go to Part 1: You should have a file called SPR.py Your file has your name at the top in a comment Run your file with F5 key and it does nothing!! 2

Part 1: Welcome Message Task 1.1: Print a welcome and the rules Welcome the player and print the rules! Use a print to make it happen when you run your code: ------------------------------------------------------- Welcome to Human vs. Computer in Scissors, Paper, Rock! ------------------------------------------------------- Moves: choose scissors, paper or rock by typing in your selection. Rules: scissors cuts paper, paper covers rock and rock crushes scissors. Good luck! Don t want to type all that out? Go to this link: http://bit.ly/2nzhvvm CHECKPOINT If you can tick all of these off you can go to Part 2: Print a welcome Print the rules Try running your code! 3

2. Who played what? Task 2.1: Make computer play the same move every time!! Make a variable for the computer s move such as computer_move, set it to "scissors", "paper" or "rock". Task 2.2: Ask the human for their move Use input to ask the human for their move and save their answer in a variable, name it something like human_move. It should look like this when you run your code: ------------------------------------------------------- Welcome to Human vs. Computer in Scissors, Paper, Rock! ------------------------------------------------------- Moves: choose scissors, paper or rock by typing in your selection. Rules: scissors cuts paper, paper covers rock and rock crushes scissors. Good luck! ------------ Task 2.3: Print out the moves Print out the moves the computer and the human have played. It should look like this when you run your code: ------------------------------------------------------- Welcome to Human vs. Computer in Scissors, Paper, Rock! ------------------------------------------------------- Moves: choose scissors, paper or rock by typing in your selection. Rules: scissors cuts paper, paper covers rock and rock crushes scissors. Good luck! ------------ What is your move? scissors, paper or rock? scissors 4

CHECKPOINT If you can tick all of these off you can go to Part 3: Set a move for the computer Ask the human to type in their move Print out the human and computers moves Run your code! BONUS 2.4: Personalise the game Waiting for the next lecture? Try adding this bonus feature!! 1. At the start of the game ask the human to enter their name. Store it in a variable (maybe use player_name) 2. Change your other code so that every time it says Human it prints the player s name instead! Remember you can add a variable to some text like this: Hello + player_name 5

3. Win, lose or tie? Let s figure out who won the game! Task 3.1: What are the different ways to win, lose and tie? What are all the combinations of how the game could go? Finish this table: Human Move Computer Move Who Wins? scissors scissors draw scissors paper human scissors rock paper Task 3.2: Store the combinations in a dictionary Create a new dictionary called results. In this dictionary, use the combinations as the key and who wins as the value. 6

Hint Make sure the keys are created using (human_move, computer_move), just like in the table above. results = {( paper, rock ): human } Task 3.3: Get the value using the key! Using our dictionary, store who wins in a variable such as winner. Use the combination of human_move and computer_move to create the key to get the value! Then print out the winner to the screen! Hint Remember that (human_move, computer_move) is not the same as (computer_move, human_move)! Order is important. winner = results[(human_move, computer_move)] CHECKPOINT If you can tick all of these off you can go to Part 4: Create a dictionary containing every combination of moves Store who won in a variable Print out the winner Run your code and test different moves! Test when you input ROCK or Rock instead of rock, what happens? BONUS 3.4: ROCK Rock rock! Waiting for the next lecture? Try adding this bonus feature!! We see that Rock is not the same as rock and our game only works when it s all in lowercase. Try to make your game work when player input a move with capital letters such as Rock or scissors. Think about how you d convert them to all lowercase. 7

8

4. Winner, Winner! It s time to tell the user who won the game! Task 4.1: If it s a tie! Use if and else statements to print more interesting win statements depending on if someone won or if it was a tie. You should print out the winner inside your if and else once you know the result! Hint You can check a particular combination of moves with code like this if moves[human_move, computer_move] == tie : print( It s a tie! ) Task 4.2: Elif, else Add an elif statement to your if statement to say if the human won! Then add an else that checks if the computer won. You should print out the winner inside your elif and else once you know the result! CHECKPOINT If you can tick all of these off you can go to Part 5: Your if statement prints it s a tie if the moves are the same Your else statement prints human won the game Your elif statement prints computer won the game Run your code and test different moves! BONUS 4.3: Name the winner! Waiting for the next lecture? Try adding this bonus feature!! Update your code so that instead of saying Human won the round, use the player s name! 9

5. Smarter Computer The computer keeps playing the same move! That s no fun! Let s make the computer chose a random move! Task 5.1: Import Random Library To get access to cool random things we need to import random! At the top of your file add this line: import random Task 5.2: Chose a random move! Find your line of code where you set your computer move, improve this line by choosing a random move. Use chose a random move for the computer using random.choice from a list of paper, scissors and rock. Hint If I wanted to choose a random food for dinner I could use code like this: dinner = random.choice(["pizza", "chocolate", "nutella", "lemon"]) CHECKPOINT If you can tick all of these off you can go to Part 6: The computer plays a random move every time. The line Computer played:. prints different things out! Try different moves against the computer, does the the correct winner print? 10

BONUS 5.3: A picture says a thousand words! Waiting for the next lecture? Try adding this bonus feature!! Instead of printing The human played paper it would be much cooler to print a picture of a paper! Use ascii art to print images for what the human and computer played! Human plays paper: I AM A SHEET OF PAPER 1. Go to this link: http://bit.ly/2nzhvvm And get the pictures for paper, scissors and rock 2. At the top of your code, store each of these ascii images as a string in different variables (maybe rock_pic, paper_pic, etc ) 3. Instead of just printing out the word the human or computer played, also print out the correct picture to match what they played. You might need to use an if statement to figure out which picture to print! 11

6. Again, Again, Again! We want to play Scissors-Paper-Rock more than once! Let s add a loop to play on repeat! Task 6.1: How many games? Find out how many games the user wants to play at the start of the game! Put this after your welcome message! Hint Input returns a string. Make sure you convert it to an int and store it in a variable! Remember int( 57 ) will give you back 57. You can use int(...) on a variable too! Task 6.2: Loop time! Create a for loop that runs as many times as the user asked for! You ll need to use: A for loop range(number_of_games) Use this line after you have asked how many games they want to play: for i in range(number_games): Task 6.3: Indenting your code Things we want to do every game need to be indented inside the loop. We want to ask for a move and check the winner every round! Hint Indented lines have a tab at the start like this, they look this: for blah in something: THIS IS INDENTED Task 6.4: GAME OVER! After all the rounds are played, print out GAME OVER!. Make sure this is after your loop and doesn t print every round! 12

CHECKPOINT If you can tick all of these off you can go to the Extensions: Ask the user how many games they want to play Your game repeats the number of times the user asked for GAME OVER prints once, after all of the rounds! 13

7. Extension: Keeping Score! Why play lots of games if we re not even keeping count of who wins?? Let s keep score! Task 7.1: Counter! Before your loop create two variables which are going to be your human and computer counters. Start by setting them both to 0. These will keep track of the human and computer scores throughout the game! Task 7.2: Add 1! Every time the computer or human wins we need to add one to the appropriate counter If it s a tie neither player gets a point! Hint You ll need to add to a counter inside your if/elif statements whenever someone wins! Task 7.3: And the winner is! After all the games are played we need to report the over all winner. Print out how many games the human can computer won each. Then print out who the overall winner was! --------------------------------- GAME OVER! Human won 5 games Computer won 2 games Human is the winner!! Hint Use an if statement to compare the scores to calculate the overall winner! CHALLENGE 7.4: First to X Right now we play a set number of games. But can you figure out how you could change your program to keep playing until a player gets a certain number of points? You might need to use a while loop, or a break, or something else you can think of! 14

8. Extension: That s not a real move! What happens if the human plays a wrong move, like Batman? Or does a typo, like ppaer? Test your code and find out! We need to make our code more robust! If you haven t already, also make sure you also go back and do Task 3.4. Task 8.1: Check the move is valid! Create a while loop that runs until the user enters a valid move of scissors, paper or rock. If the move isn t valid, ask the user for their move again! CHALLENGE 8.2: Game Over! Shut Down! Sometime the user might say they want to play a certain number of rounds, but has to leave before the rounds are finished. Create an if statement that checks to see if the user entered quit as their move, and close the game down. Don t forget to tell the user who the overall winner was! 15

9. Extension: Scissors, Paper, Rock, Lizard, Spock! Let s add some more moves and play Scissors, Paper, Rock, Lizard, Spock! Follow the arrows in the picture to see who wins! Task 9.1 Updated moves! When you ask the user what move they want to play, include lizard and spock! Make sure you give the computer the same options! Task 9.2 Updated combos! Update the moves dictionary to include all of the new combinations! 16

10. Extension: AI. The computer reads your mind! Let s make the game more challenging by having the computer guess what move the user will choose next, based on what the user has chosen before! Task 10.1 Create the dictionary Create an empty dictionary called ai for the computer. Store the move the human last chose in another variable, such as last_move. Task 10.2 Store what happens next! In the dictionary, add the move that the human played last round as a key if it s not already in the dictionary. Then store the move that the human played this round in a list as the value. Make sure this happens every round! Task 10.3 Get the computer to choose! Now that the computer knows what the human played last time, get it to guess what you ll play next! If the move the human played last is in the ai dictionary, choose the computer s move from the list of values. Otherwise, select the computer_move from the standard lists of moves! CHALLENGE 10.3: Pick the winner Our computer move will now pick the more likely move to make it tie with the human. But we want our computer to win! Rather than storing what the human played as the value in the dictionary, store the move that would win against the human instead. 17

11. Extension: Write your own rules! Scissors-Paper-Rock-Lizard-Spock is boring. Everyone s already playing it! Let s make our own version! Task 11.1: Ask the user for their moves! Ask the user for some moves, Then split those options into a list called moves! Task 11.2: Manual winning! Create a for loop that runs through every combination and have the user input if the winner was human, computer or tie. Store the answers in a dictionary! Task 11.3: Move it, move it! Make sure that the computer and human are using the correct set of moves! CHALLENGE 11.4: Work out the winners using for loops! Update your for loop so that if the user says that move1 beats move2, the code knows that move2 loses to move1. We also know that if move1 and move2 are the same move, that its a tie! Create another for loop that handles all the ties. Store the answers in the dictionary! 18