viernes, 29 de enero de 2010

Programa de loterías en Python


A continuación os presento un programa muy sencillo, escrito en Python, para la generación aleatoria de combinaciones para juegos de azar. Lo he probado en Windows, así que en Linux no creo que haya problemas. He utilizado el módulo random para crear los números pseudoaleatorios. Hay varias formas de hacerlo. Yo he utilizado el método uniform, que da entre el rango que especifiquemos un número real. Como se verá en el código lo que he hecho ha sido un casting con int(), para quedarme con la parte entera, que es la que me interesa. Por supuesto el código tiene muchas mejoras, pero lo importante es ver el funcionamiento, y sobretodo lo sencillo que es programar en Python. Si he escrito esta noche este programa es porque es Viernes, no me ha tocado el Euromillones.

# Progama para generar secuencias de loterías.
# Escrito por Ángel Luis García García en Python 2.5.4

import random, os

def combinacion(num_ele, total_num, repetir = False,
ordenar_resultado = True):

elementos = []
if num_ele > total_num and not repetir:
print "No puedes sacar más valores de los que ya tienes!"
return

aux = num_ele
while aux > 0:
numero = int(random.uniform(1,total_num))
if repetir:
elementos.append(numero)
aux = aux - 1
else:
if elementos.count(numero) == 0:
elementos.append(numero)
aux = aux - 1

if ordenar_resultado:
elementos.sort()
print elementos

def menu():
print '''

================================
MENU PRINCIPAL
================================

Este programa genera combinaciones
de juegos de azar. Elige el juego
que más te guste.

1) Lotería primitiva
2) Euromillones
9) Salir

'''

opcion = raw_input("")
return opcion

def aplicacion():
os.system('cls')
opcion = ""
while opcion != "9":
opcion = menu()
if opcion == "1":
print ""
print "Combinación para Lotería Primitiva: "
combinacion(6,49)
print ""

if opcion == "2":
print ""
print "Euromillones"
print "Combinación ganadora: "
combinacion(5,50)
print "Estrellas: "
combinacion(2,9)
print ""

# Ejecutamos el programa.
aplicacion()

2 comentarios:

  1. Buenas noches. si usas gnu/linux, hay que cambiar os.system('cls') por os.system('clear')

    ResponderEliminar
  2. Buenas esto es lo que me sale: uso ubuntu 12.04

    Original exception was:
    File "secu_loterías001", line 10
    num_elementos = []
    ^
    #!/usr/bin/python
    # -*- coding: iso-8859-15 -*-
    # Progama para generar secuencias de loterías.

    import random, os

    def combinacion(num_ele, total_num, repetir = False,
    ordenar_resultado = True):

    num_elementos = []
    if num_ele > total_num and not repetir:
    print "No puedes sacar más valores de los que ya tienes!"
    return

    aux = num_ele
    while aux > 0:
    numero = int(random.uniform(1,total_num))
    if repetir:
    elementos.append(numero)
    aux = aux - 1
    else:
    if elementos.count(numero) == 0:
    elementos.append(numero)
    aux = aux - 1

    if ordenar_resultado:
    elementos.sort()
    print elementos

    def menu():
    print '''

    ================================
    MENU PRINCIPAL
    ================================

    Este programa genera combinaciones
    de juegos de azar. Elige el juego
    que más te guste.

    1) Lotería primitiva
    2) Euromillones
    9) Salir

    '''

    opcion = raw_input("")
    return opcion

    def aplicacion():
    os.system('clear')
    opcion = ""
    while opcion != "9":
    opcion = menu()
    if opcion == "1":
    print ""
    print "Combinación para Lotería Primitiva: "
    combinacion(6,49)
    print ""

    if opcion == "2":
    print ""
    print "Euromillones"
    print "Combinación ganadora: "
    combinacion(5,50)
    print "Estrellas: "
    combinacion(2,9)
    print ""

    # Ejecutamos el programa.
    aplicacion()

    ResponderEliminar