#################################################
# number_guessing_game.py
#################################################

import random

def playUserGuessesNumber():
    lo = 0
    hi = 100
    answer = random.randint(lo, hi)
    guesses = 0
    guess = -1
    print('Guess a number between', lo, 'and', hi)
    while (guess != answer):
        guess = int(input('Next guess --> '))
        guesses += 1
        if (guess < lo):
            print('*** Bad guess, you knew it could not be less than', lo)
        elif (guess > hi):
            print('*** Bad guess, you knew it could not be greater than', hi)
        elif (guess < answer):
            print('Too low!')
            lo = guess + 1
        elif (guess > answer):
            print('Too high!')
            hi = guess - 1
    print('You got it in', guesses, 'guesses!')

def playComputerGuessesNumber():
    lo = 0
    hi = 100
    guesses = 0
    print('Pick a number between', lo, 'and', hi, 'and I will guess it!')
    while True:
        guess = (lo + hi)//2
        guesses += 1
        print('I guess:', guess)
        option = input('Is this [h]igh, [l]ow, or [c]orrect? ')
        if (option == 'h'):
            hi = guess - 1
        elif (option == 'l'):
            lo = guess + 1
        else:
            print('Woohoo! I got it in', guesses, 'guesses!')
            return
        if (lo > hi):
            print("That's not possible!  You did something wrong!")
            return

def playNumberGuessingGame():
    option = input('Who is guessing, [u]ser or [c]omputer? ')
    if (option == 'u'):
        playUserGuessesNumber()
    else:
        playComputerGuessesNumber()

playNumberGuessingGame()
