Guess a number: Difference between revisions

From Computer Science Wiki
Line 22: Line 22:
This code will not run. If you see  <code>...</code> I have left out code, and you have to figure out what to put in.  
This code will not run. If you see  <code>...</code> I have left out code, and you have to figure out what to put in.  


<syntaxhighlight lang="python" linenumbers="yes">
<syntaxhighlight lang="python" linenumber="yes">


import random
import random

Revision as of 18:27, 22 June 2016

This a problem set for you to work through [1]

This is a problem set. Some of these are easy, others are far more difficult. The purpose of these problems sets are to HELP YOU THINK THROUGH problems. The solution is at the bottom of this page, but please don't look at it until you have tried (and failed) at least three or four times.


What is this problem set trying to do[edit]

You have to think about conditions and computational thinking here. You are also going to be incrementing variables.

The Problem[edit]

Please write a simple game that randomly selects a number between 0 and 100. A player must guess the number. Your program should tell the player if their guess is higher or lower than the secret number.

  1. Your program must generate a random number between 0 and 100 and assign that random number to a variable.
  2. Your program must ask the player to guess a number
  3. Your program must compare the players guess and the secret number. The program should tell the player if their guess is higher or lower than the secret number
  4. Your program must tell the player if they have won
  5. Your program must ask the player if they want to play again

Some Code to Get You Started[edit]

This code will not run. If you see ... I have left out code, and you have to figure out what to put in.

import random
secret_number = ...
guess = 0
game = 1
  
    print("This is guess: " + str(guess))
    print("This is game:" + str(game))
    player_guess = input("Please make a guess: ")
    guess = guess +1
   
...
       
        play_again = raw_input("Do you want to play again? ")
        if play_again == "y" or play_again == "Y" or play_again == "yes":
            guess = 0
            game = game + 1
        break
 ....

Take This Further[edit]

  1. add in a condition that players only have a certain number of turns to win
  2. add in a difficulty level; easy, medium and expert. If a player has easy, they have 8 tries, medium, they have only 4 tries, and expert, only 2 tries!!

How you will be assessed[edit]

Every problem set is a formative assignment. Please click here to see how you will be graded

References[edit]

A possible solution[edit]

Click the expand link to see one possible solution, but NOT before you have tried and failed!

import random
secret_number = random.randint(0, 100)
guess = 0
game = 1
level = raw_input("What level do you want(E, M, H, I): ")
if level == "easy" or "e":
    l = 10
elif level == "medium" or "m":
    l = 7
elif level == "hard" or "h":
    l = 4
elif level == "impossible" or "i":
    l = 2
while True:
   
    print("This is guess: " + str(guess))
    print("This is game:" + str(game))
    if guess >= l:
        print("You ran out of guesses!")
        break
    player_guess = input("Please make a guess: ")
    guess = guess +1
   
    if player_guess == secret_number:
        print("You won in " + str(guess) + " guesses!")
       
        play_again = raw_input("Do you want to play again? ")
        if play_again == "y" or play_again == "Y" or play_again == "yes":
            guess = 0
            game = game + 1
        break
    elif player_guess < secret_number:
        print("That is a bit to low")
    elif player_guess > secret_number:
        print("That is a bit to high")v