Wednesday, May 1, 2013

Game: Guess the number!

I have recently started learning Python from an online course and we had this course assignment to program this game. I am avoiding the name of the course and the name of the online resource on purpose because I don't want this show up on Google results. I'm just childishly happy that I wrote something and I wanted to save it here. This code may not work as is, because it uses some modules that are not part of standard python installations. After writing it in Python, I tried to do it on Powershell too and it kind of worked.




import simplegui
import random

# initialize global variables 
secret_number = random.randrange(0,100)
maximum_guesses = 7
    
def range100():
    """Button that changes range to range(0,100)"""
    global secret_number
    global maximum_guesses
    secret_number = random.randrange(0,100)
    maximum_guesses = 7
    print "New Game! Enter a guess between 0 and 100. \n"
    
def range1000():
    """button that changes range to range(0,1000)"""
    global secret_number
    global maximum_guesses
    secret_number = random.randrange(0,1000)
    maximum_guesses = 10
    print "\nNew Game! Enter a guess between 0 and 1000. \n"        
    
def get_input(guess):
    global maximum_guesses
    global secrent_number
    maximum_guesses -= 1
    guessed_number = float(guess)
    if guessed_number == secret_number:
        print "Your guess", guess, "is correct! YOU WIN!"
        print "You had", maximum_guesses, "guesses left.\n"
        range100()
    elif maximum_guesses > 0:
        if guessed_number > secret_number:
            print guess+"?","incorrect! try LOWER.", maximum_guesses, "guess(es) left. \n"
        if guessed_number < secret_number:
            print guess+"?","incorrect! try HIGHER.",maximum_guesses, "guess(es) left. \n"
    else:
        print "Your guess", guess, "is incorrect. You lose. Why not try again!\n"
        range100()
    

frame = simplegui.create_frame("Guess The Number", 200, 200, 200)
frame.add_input("Enter your guess and hit enter key", get_input, 200)
frame.add_button("Change range to 100", range100)
frame.add_button("Change range to 1000", range1000)

frame.start()
Now lets try this on Powershell
$random = New-Object system.random

$RandomNumber = $random.next(1,100)
do { $guess = read-host -prompt "What is your guess?"
        if ($guess -gt $RandomNumber) {Write-Host "Incorrect! Try Lower!"}
        elseif ($guess -lt $RandomNumber) {Write-Host "Incorrect! Try Higher!"}
        elseif ($guess -eq $RandomNumber) {Write-Host "That is CORRECT! You Rock! It took you $count tries"}
        else {"You have to guess a number!!!"}
        $count += 1
    } while ($guess -ne $RandomNumber)