liso1201
(usa Outra)
Enviado em 16/03/2022 - 11:00h
estou estudando python e tkinter a 2 semanas. Terminado a carga teorica desses assuntos fui para alguns problemas para praticas, em um deles, o objetivo é criar uma interface grafica (tkinter)
que gera um numero aleatorio e faz o usuario acertar esse numero inteiro. Uma dificuldade que estou tendo é fazer o programa criar um NOVO numero aleatorio dado que o ultimo foi acertado
sem precisar fechar e abrir o programa. Aqui esta o código (o estilo da interface é bem simplorio):
Nota: o intervalo do numero aleatorio esta entre -1 e 1 apenas para simplificar os testes com o programa
from tkinter import*
from random import randint
#asw recebe o numero aleatorio
asw = randint(-1, 1)
janela = Tk()
janela.title('jogo da adivinhação')
janela.configure(bg='light blue')
janela.geometry('300x50')
janela.resizable(False,False)
e1 = Entry(janela,width=300)
e1.place(relx=0,rely=0,relwidth=1,relheight=0.5)
l1 = Label(janela,bg = 'black', fg = 'white',width=100,height=1)
l1.place(relx=0,rely=0.5,relwidth=1,relheight=0.5)
#função que orienta o jogador se esta proximo ou não de acertar o numero
def genio(event):
i = e1.get()
try:
if float(i) < asw:
l1['text'] = "calculando..."
l1.after(700, lambda : l1.configure(text="o numero secreto é maior"))
elif float(i) > asw:
l1['text'] = "calculando..."
l1.after(700, lambda : l1.configure(text="o numero secreto é menor"))
elif float(i) == asw:
l1['text'] = "calculando..."
l1.after(700, lambda : l1.configure(text="parabens, voce acertou,vamos trocar o numero :)"))
asw = randint(-1,1)
except:
l1['text'] = "OPS! opção invalida, digite um numero"
#apertar Enter para rodar a função
e1.bind( '<Return>', genio)
janela.mainloop()