[Tutor] Guessing Game Program

Malcolm Newsome malcolm.newsome at gmail.com
Sun Mar 27 03:48:34 CEST 2011


I noticed an error in my code...and got a cool tip on how to add an "out of
range" response if the user types in a number outside of 1-100.

Enjoy!

Malcolm



# guess.py
# a simple number guessing game

import random

#---------------------------------------------------------------------------
-------------------
def nope_message(random_num):
    return "Nope! I'm smarter than you!\nI was thinking of the number: %d" %
int(random_num)

def right_message(retried=False): 
    message = "That was right! I guess you ARE smarter than me"
    
    if retried:
        message += "... even though it took you another try!"

    return message

def reread_input(message):
    return int(input("You were too %s. Type another number: " % message))

def retry(message, random_num):
    guess_iflow = reread_input(message)

    if guess_iflow == random_num:
        return right_message(True)
    else:
        return nope_message(random_num)

#---------------------------------------------------------------------------
------------------

def main():
    print "Do you think you're smarter than me?"
    print "I guess we'll see!"
    print "I'm thinking of a number between 1 - 100.  Can you guess what it
is?"

    random_num = random.randint(1, 100)

    while True:

        guess = int(input("Type a number between 1 - 100: "))
        if guess < 1 or guess  > 100:
            print "%s is out of range try again" % guess
            continue

        break
    
    if guess == random_num:
        print right_message()
    elif guess < random_num:# user gets second chance if number is too low
        print retry("low", random_num)
    elif guess > random_num:# user gets second chance if number is too high
        print retry("high", random_num)
    else:
        print nope_message(random_num)




if __name__ == "__main__": 
    main()





-----Original Message-----
From: Donald Bedsole [mailto:drbedsole at gmail.com] 
Sent: Thursday, March 24, 2011 11:54 PM
To: Malcolm Newsome
Subject: Re: [Tutor] Guessing Game Program

Hi Malcolm :-)

On Fri, Mar 25, 2011 at 12:37 AM, Malcolm Newsome
<malcolm.newsome at gmail.com> wrote:
> Hey Don!
>
> I posted an eerily similar request to another python group about two 
> weeks ago!  I, too, am very new to programming and the guessing game 
> was my first shot at writing a script from scratch!

I got interested in writing a guessing game because I was trying to fix a
C++ program that wouldn't compile with g++ because they were using a
non-standard randomizer() function.  (I really don't know C++, but I thought
trying to fix the problems with someone else's program might help me to
learn).  I didn't make much headway in understanding how to generate random
numbers in C++, but it made me curious about how to do it in Python.  Python
seems much easier!

>
> Below is my code (improved with some help from others).  I still would 
> like to make some improvements to it also.  But, perhaps there will be 
> some ideas in it that can help you as well!  Looking forward to learning
and growing!
>
> All the best!
>
> Malcolm


Thanks for posting your code.  I will look at it later (closing in on
1:00 AM here) to see what I can learn from it.  Tutorials are great, but it
seems looking at code makes it easier for me to learn.

Thanks for taking the time to post, and I hope you're successful in your
programming studies.

Don



More information about the Tutor mailing list