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()