avatar Bite 42. Number Guessing Game Class

In this Bite you implement a Game class to perform a number guessing game. It lets a user do a max of 5 guesses of a secret number between 1 and 20 randomly defined by the class.

Note you have to account for invalid inputs: raise a ValueError if a user hits Enter (nothing entered), a non-numeric value, a number that is not in the 1-20 range, or guesses the same number again. See the template code below ... (Advanced Bite, not giving away too much!)

The tests run through a lose scenario as well. Note they mock out the input builtin to test this. And you will be tested on stdout too so use print statements in addition to return values. Here is how the program would work from the command line:

Guessed it (note wrong input does not count towards number of guesses):

    $ python guess.py
    Guess a number between 1 and 20:
    Please enter a number
    Guess a number between 1 and 20: string
    Should be a number
    Guess a number between 1 and 20: 5
    5 is too low
    Guess a number between 1 and 20: 15
    15 is too high
    Guess a number between 1 and 20: 10
    10 is too high
    Guess a number between 1 and 20: 8
    8 is too high
    Guess a number between 1 and 20: 6
    6 is correct!
    It took you 5 guesses

Guessed it - another example:

    $ python guess.py
    Guess a number between 1 and 20: -1
    Number not in range
    Guess a number between 1 and 20:
    Please enter a number
    Guess a number between 1 and 20: 8
    8 is too high
    Guess a number between 1 and 20: 10
    10 is too high
    Guess a number between 1 and 20: 4
    4 is correct!
    It took you 3 guesses

Did not guess it:

    $ python guess.py
    Guess a number between 1 and 20: 9
    9 is too low
    Guess a number between 1 and 20: 8
    8 is too low
    Guess a number between 1 and 20: 7
    7 is too low
    Guess a number between 1 and 20: 6
    6 is too low
    Guess a number between 1 and 20: 5
    5 is too low
    Guessed 5 times, answer was 16

Good luck, have fun and keep calm and code in Python!

Login and get coding
go back Advanced level
Bitecoin 4X

136 out of 146 users completed this Bite.
Will you be Pythonista #137 to crack this Bite?
Resolution time: ~86 min. (avg. submissions of 5-240 min.)
Pythonistas rate this Bite 6.11 on a 1-10 difficulty scale.
» Up for a challenge? 💪

Focus on this Bite hiding sidebars, turn on Focus Mode.

Ask for Help