Difference between revisions of "CSC111 Homework 4 Solutions 2014"
(Created page with "--~~~~ ---- =Problem 1= ==Version 1== <source lang="python"> #hw4a #Nicole Wong (bw) #Anna Render (bp) #(slightly edited by D. Thiebaut) # # Rock, Paper, Scissors game # The p...") |
(→Version 1) |
||
Line 77: | Line 77: | ||
+ | |||
+ | </source> | ||
+ | ==Version 2== | ||
+ | Another very good version: | ||
+ | <source lang="python"> | ||
+ | # hw4a.py | ||
+ | # Sarah Sutto-Plunz (bu) | ||
+ | # This progam evaluates a user's input to play the game of rock, paper, scissors. | ||
+ | # The computer randomly chooses one while the user is prompted to put an input. | ||
+ | # The program will keep asking for an input as long as it is not R,P, or S. | ||
+ | # The program keeps score of who is winning and prints it after each round. | ||
+ | # The program continues to run until there is a difference of 3 between the scores | ||
+ | # and then prints the final winner. | ||
+ | |||
+ | from random import choice | ||
+ | from random import seed | ||
+ | seed() | ||
+ | |||
+ | # declare score counters | ||
+ | hcount = 0 | ||
+ | ccount = 0 | ||
+ | |||
+ | # constants used in the game | ||
+ | OPTIONS = [ 'R', 'P', 'S'] | ||
+ | USERWINS = "You win!" | ||
+ | COMPUTERWINS = "I win!" | ||
+ | |||
+ | #--- while the score does not have a difference of three --- | ||
+ | while abs(ccount-hcount) <3: | ||
+ | computer = choice( OPTIONS ) | ||
+ | human = input( "Your play? " ).upper().strip() | ||
+ | |||
+ | #--- while the human puts in an incorrect input --- | ||
+ | while human != "R" and human != "S" and human != "P": | ||
+ | print ("Invalid input, please enter a new character (R,P, or S): ") | ||
+ | human = input( "Your play? " ).upper().strip() | ||
+ | |||
+ | #--- when the human enters the correct input --- | ||
+ | else: | ||
+ | print( "Your play: %s Computer Play: %s" % ( human, computer ) ) | ||
+ | if human==computer: | ||
+ | print( "It's a tie!" ) | ||
+ | elif human == 'P' and computer =='R' \ | ||
+ | or human == 'R' and computer =='S' \ | ||
+ | or human == 'S' and computer =='P': | ||
+ | print( USERWINS ) | ||
+ | hcount= hcount+1 | ||
+ | else: | ||
+ | print( COMPUTERWINS ) | ||
+ | ccount = ccount +1 | ||
+ | |||
+ | #--- announces the winner when there is a difference of 3 between scores--- | ||
+ | if hcount> ccount: | ||
+ | print ("You're a winner!") | ||
+ | else: | ||
+ | print ("Better luck next time!") | ||
</source> | </source> |
Revision as of 12:35, 6 March 2014
--D. Thiebaut (talk) 12:33, 6 March 2014 (EST)
Problem 1
Version 1
#hw4a
#Nicole Wong (bw)
#Anna Render (bp)
#(slightly edited by D. Thiebaut)
#
# Rock, Paper, Scissors game
# The program will stop only once the difference in score between computer and human players is 3
# The program prompts the user if the input is not one of 'P', 'R', or 'S'.
# The program will accept valid letters in lower or upper case, and with extra spaces before or after the letter.
# The program will indicate the winner of each round.
# The program will stop and output a final message at the end, when the difference in score is 3,
# pointing out who the winner is.
#define variables
from random import choice
from random import seed
seed()
# constant values used in game
OPTIONS = ['R', 'P', 'S']
# counters for score
computerScore = 0
humanScore = 0
difference = 0
#--- while the difference between the human score and computer score is less than 3---
while difference < 3:
computer = choice( OPTIONS )
human = input( "What is your play? (R, P, S) " ).upper().strip()
#--- keep prompting as long as invalid input ---
while human != 'P' and human != 'S' and human != 'R':
human = input( "I didn't get that. Please reenter: " ).upper().strip()
#--- feedback to user ---
print( "You have played: ", human.upper() )
print( "The computer has chosen: ", computer )
if ( computer == 'R' and human == 'P' ) \
or ( computer == 'P' and human == 'S' ) \
or ( computer == 'S' and human == 'R' ) :
print( "Whatever, you win this round." )
print()
humanScore = humanScore + 1
difference = abs(humanScore - computerScore)
elif ( computer == 'R' and human == 'S' ) \
or ( computer == 'P' and human == 'R' ) \
or ( computer == 'S' and human == 'P' ) :
print( "Haha, I win this round!" )
print()
computerScore = computerScore + 1
difference = abs(humanScore - computerScore)
else:
print( "It's a tie!" )
print()
difference = abs(humanScore - computerScore)
#--- once the difference between the human and computer score is 3 ---
#--- print winner ----
if computerScore > humanScore:
print( "You lose the game! I am sorry, but you are no match for me!" )
else:
print( "Congrats, you win the game!" )
# (Note: there can't be a tie because the main loop repeats until difference of 3)
Version 2
Another very good version:
# hw4a.py
# Sarah Sutto-Plunz (bu)
# This progam evaluates a user's input to play the game of rock, paper, scissors.
# The computer randomly chooses one while the user is prompted to put an input.
# The program will keep asking for an input as long as it is not R,P, or S.
# The program keeps score of who is winning and prints it after each round.
# The program continues to run until there is a difference of 3 between the scores
# and then prints the final winner.
from random import choice
from random import seed
seed()
# declare score counters
hcount = 0
ccount = 0
# constants used in the game
OPTIONS = [ 'R', 'P', 'S']
USERWINS = "You win!"
COMPUTERWINS = "I win!"
#--- while the score does not have a difference of three ---
while abs(ccount-hcount) <3:
computer = choice( OPTIONS )
human = input( "Your play? " ).upper().strip()
#--- while the human puts in an incorrect input ---
while human != "R" and human != "S" and human != "P":
print ("Invalid input, please enter a new character (R,P, or S): ")
human = input( "Your play? " ).upper().strip()
#--- when the human enters the correct input ---
else:
print( "Your play: %s Computer Play: %s" % ( human, computer ) )
if human==computer:
print( "It's a tie!" )
elif human == 'P' and computer =='R' \
or human == 'R' and computer =='S' \
or human == 'S' and computer =='P':
print( USERWINS )
hcount= hcount+1
else:
print( COMPUTERWINS )
ccount = ccount +1
#--- announces the winner when there is a difference of 3 between scores---
if hcount> ccount:
print ("You're a winner!")
else:
print ("Better luck next time!")