In [ ]:
from random import randint
In [ ]:
def guess_a_number():
"""Game to guess a number the computer randomly generated."""
random_number = randint(0, 100)
demo_or_play = str(input("Do you want the computer to guess the number? If so, say 'demo'! "))
if demo_or_play == 'demo':
demo_a_number(random_number)
else:
guess = check_raw("Please enter an integer between 0 and 100: ")
count_guesses = 1
while guess != random_number:
count_guesses = count_guesses + 1
guess = evaluate_my_number(guess, random_number)
else:
print(('Hooray! Your guess is right!\nYou needed {} guesses.'.format(count_guesses)))
new_game = str(input("Do you want to play again? If so, say 'yes'! "))
if new_game == 'yes':
guess_a_number()
else:
print('Goodbye!')
def evaluate_my_number(guess, random_number):
"""Is the guess to high or to low? Guess again!"""
if guess < random_number:
print('Too low!', end=' ')
else:
print('Too high!', end=' ')
guess = check_raw()
return guess
def check_raw(print_string='Please try again: '):
"""Gets the string, raw_input should print, checks and returns the input."""
try:
checked_int = int(input(print_string))
if checked_int < 0 or checked_int > 100:
print('Your number has to be between 0 and 100!', end=' ')
checked_int = check_raw()
except ValueError:
print('That was not an integer!', end=' ')
checked_int = check_raw()
return checked_int
def demo_a_number(random_number):
"""The computer tries to guess the number"""
current_number = 50
lower_bound = 0
upper_bound = 100
count_computer_guesses = 1
while current_number != random_number:
count_computer_guesses = count_computer_guesses + 1
print(('The computer guessed {}'.format(current_number)))
if current_number < random_number:
print('That was too low.')
lower_bound = current_number
else:
print('That was too low.')
upper_bound = current_number
current_number = (lower_bound + upper_bound) // 2
else:
print(('The computer guessed {}\nThat was right! \
After {} guesses'.format(current_number, count_computer_guesses)))
guess_a_number()