martes, 22 de julio de 2008

Haciendo Algo Productivo

Hoy en el laburo estuve medio boludeando a la mañana. Si bien estuve entretenido leyendo un manual de Administración Linux que encontré en internet y esta interesante, tambien me puse a hacer algo con Python que vengo medio flojo con este lenguaje de programación y debería ponerme las pilas.

Así que me hice un simple programita para que me genere aleatoriamente seis números para jugar jugarle al Quini6 :P

Este es el codigo que tiene que ir acompañado con el correspondiente archivo de Glade. No es nada del otro mundo ya que lo unico que hace es generar los números y listo:

import pygtk
pygtk.require('2.0')
import gtk
import gtk.glade
import random

class Ventana_Aleatorio(object):
....def __init__(self):
........self.gladefile = "pyAleatorio.glade"
........self.wTree = gtk.glade.XML(self.gladefile)

........self.window = self.wTree.get_widget("window1")
........self.window.connect("delete-event",self.salir)
........self.boton_nuevo = self.wTree.get_widget("boton_generar")
........self.boton_nuevo.connect("clicked", self.generar, None)

........self.label1 = self.wTree.get_widget("label1")
........self.label2 = self.wTree.get_widget("label2")
........self.label3 = self.wTree.get_widget("label3")
........self.label4 = self.wTree.get_widget("label4")
........self.label5 = self.wTree.get_widget("label5")
........self.label6 = self.wTree.get_widget("label6")

....self.window.show_all()


....def generar(self,widget,data=None):
........valores = []
........for i in range(6):
............valores.append(random.randint(0,45))

........self.label1.set_text(" " + str(valores[0]))
........self.label2.set_text(" - " + str(valores[1]))
........self.label3.set_text(" - " + str(valores[2]))
........self.label4.set_text(" - " + str(valores[3]))
........self.label5.set_text(" - " + str(valores[4]))
........self.label6.set_text(" - " + str(valores[5]))

....def salir(self,arg,arg2):
........gtk.main_quit()

....def main(self):
........gtk.main()


va = Ventana_Aleatorio()
va.main()


La verdad que es bastante pedorro el programa, asi que despues en casa lo voy a pulir un poco. Pero igualmente sirve para jugar y hacer algo. Y si gano unos mangos, puedo decir que "finalmente la informatica me rinde frutos"

1 comentario:

Gabriel Patiño dijo...

Tenes un bug en el codigo!

Al generar los numeros haciendo un random.int(9,45) puede darse el caso de que se repitan bolillas. Incluso en el mas dificil de los casos, puede ser que saques 6 numeros iguales (mas dificil que ganar el quini 6) ;)

Hacelo asi, que aparte quedaria un poco mas pythonico:

bolillas = range(0, 45)
bolillas = random.shuffle(bolillas)
carton = bolillas[:6]

Simple, no?
Practicamente es pseudo codigo: creas 45 bolillas, las mezclas, y elegis 6

Si lo queres mas facil aun, el random.sample() te puede ayudar:

bolillas = range(0, 45)
carton = random.sample(bolillas, 6)