Adivina el número en python

Código en python del sencillo juego de adivinar el número. Como siempre, lo hice pilladísimo de tiempo, asi que el código sigue siendo mierdecilla pinchada en un palo. Pero al menos hay código existente.


En este proyecto ya hay un pequeño problema, y es que este código está hecho con el cursillo de coursera, el cual usan una plataforma propia donde podemos escribir y ejecutar python. Al ser de introducción y demás, resolvieron la parte gráfica ofreciendo una librería desarrollada por ellos en la plataforma para que no tengamos que preocuparnos de ello.

Resultado, este código no es portable y si queréis ver el código en funcionamiento, tenéis que ir a CodeSkulptor y pegar el código. De CodeSkulptor sale la librería gráfica que aparece en el código.

Tampoco os emocionéis con esto de los gráficos, que no dibujamos nada aquí. :P

Guess a number: Pulsa para ver/ocultar el código
#import the library for gui, random numbers and maths
import simplegui
import random
import math

#Global variables
# secret number
secret_number = 0
# attempts remaining
attempts = 0
# maximum of the range
maximum_range=100


# start new game
def new_game():
    global secret_number
    global attempts

    print
    #set a secret number
    secret_number = random.randrange(0,maximum_range)
    #set attempts according the range
    #with logarithm base 2 of the maximum (and ceiling)
    #I get the best number of attempts
    attempts = int(math.ceil(math.log(maximum_range,2)))
    
    #show the range of the game and the attempts
    print "Range is [0," + str(maximum_range)+")"
    print "Number of attempts: " + str(attempts)
    print

# define event handlers for control panel
def range100():
    # button that changes range to range [0,100) and restarts
    global maximum_range
    maximum_range=100
    new_game()

def range1000():
    # button that changes range to range [0,1000) and restarts
    global maximum_range
    maximum_range=1000
    new_game()
    
#Guess of the user, main of the game
def input_guess(guess):
    #show what I write
    print "Guess was " + guess
    
    #Error if is not a number(digit)
    if not guess.isdigit():
        print "Write a number!"
        
    else:
        #convert the string to int for comparison
        number = int(guess)
        #control the range
        if number>=0 and numbersecret_number:
            print "Lower"
        else:
            print "Higher"
    
# create frame
frame = simplegui.create_frame("Guess a number!", 200, 200)

# register event handlers for control elements
frame.add_button("Range is [0,100)", range100, 200) 
frame.add_button("Range is [0,1000)", range1000, 200)
#I store the input, so later I can clear the text inside the input
input_text=frame.add_input("Enter a guess", input_guess, 200)

# call new_game and start frame
new_game()

Etiquetas: ,,,. Guarda el enlace permanente.

Deja un comentario ^^