quarta-feira, 31 de dezembro de 2014

Random e Interface - Parte II

No post ANTERIOR, fizemos uma interface e um gerador de números aleatórios. Bom, havia alguns problemas no código.

Erros:

A lista não ficava ordenada, um usuário gostaria de que seu jogo estivesse em ordem crescente.
A lista poderia apresentar números repetidos, imagine o usuário indo jogar e seu código apresentava um, dois ou mais números repetidos.

Esses erros são comuns quando não analisamos o que o usuário poderá fazer. E sabe eles sempre fazem coisas que não acreditamos.

Enfim, vamos melhorar nosso código.

Código antigo ( somente será necessário modificar a função):

#funcao gerar
def gerar():
    listasena=range(6) 
    for i in range(0,5):
        listasena[i]=random.randrange(1,60)
    
    mlbl = Label(text=listasena).pack()



Novo código


#funcao gerar
def gerar():
    listasena = random.sample(range(60),6)
    listasena.sort()
    mlbl = Label(text=listasena).pack()

O que foi modificado?

Foi acrescentado o:

listasena = random.sample(range(1,60),6)

Agora com essa linha, não precisa mais da função for. Definimos o range(1,60) que vai de 1-60, e depois da virgula definimos quantos números aleatórios queremos. Basicamente uma linha nos salvou. E a linha:



listasena.sort()

coloca a lista em ordem.

Bom, isso deixa nosso código pronto para usar.

Código:

from Tkinter import *
import random

#funcao gerar
def gerar():
    listasena = random.sample(range(1,60),6)

    listasena.sort()
    mlbl = Label(text=listasena).pack()

#janela
mJanela = Tk()
mJanela.geometry("200x200")
mJanela.title("Sena")
#janela

#botao
mbtn2 = Button(text = 'Gerar', command = gerar).pack()
#botao

mJanela.mainloop()

Nenhum comentário:

Postar um comentário