Loteria Clasica en Python [Parte 1]


Para culminar con esta serie de entregas sobre el azar en python, voy a redactar esta entrada y quizá otra, en esta entrada he ido al grano con la lotería de 6 números, verificamos que jugamos y cuantos metimos y ya luego en la próxima entrada podremos ver la posibilidad de ganar mas que estrés y canas con este tipo de juegos… a continuación el código y algunos comentarios y posibles mejoras 😀

#!/usr/bin/python
# -*- coding: utf-8 -*-
# Autor Orfeo mas conocido como Seth-Root
 
import random
 
# Programa que emula el sorteo del Kino, no pretendo introducirlos en juegos de azar solo que no he visto nada sobre esto en internet y hace tiempo lo busque y es una de las cosas pendientes que tengo
 
loteria_jugada = [1, 2, 3, 4, 5, 6]
lista_de99 = []
sorteo = 0

lista6 = []

lista_completa = []
 


  
while sorteo < 5: # Iteramos 10 Veces
  
    num_metidos = 0
    lista99 = range (0 , 100)  # Creamos la lista del 1 a 15, recuerda que range no agrega el ultimo indice
    lista6 = []
    for i in range(1 , 7): # Iteramos 6 Veces
 

        lista_de99 = lista99  # Cambiamos el nombre de la lista por si algun error
    

        cuantos_hay = len( lista_de99 ) # contamos cuantos elementos hay, recuerda que la lista varia y pierde un elemenrto por ciclo y no queremos ese horrible error de fuera de rango

        x = random.randrange(cuantos_hay) # Buscams un numero Aleatorio
    
        lista6.append(x) # Pasamos el numero aleatorio y lo sacamos del Sorteo
    
    print "Has Jugado", loteria_jugada

    print lista6
    
    sorteo += 1

    
    
### Esto es lo nuevo, iteramos sobre uno de los 2 kinos el jugado o el ganador y asi verificamos cuantos aciertos tenemos
for h in lista6: # Iteramos sobre el ganador
  
    if h in loteria_jugada:
        num_metidos += 1
	      
    
### Aqui la asalida importante
        lista_completa.append(num_metidos)



    
    # estas lineas habian sido agregadas en la entrada anterior aunque realmente no hacian nada, solo si en 20 jugadas pegabas el gordo lo que estaba muy cuesta arriba de acuerdo a las ṕrobabilidades
    if loteria_jugada == lista6:
            print "En el sorteo:",  sorteo , ", Felicitaciones has ganado" ,      num_metidos
            print "Tu jugaste:",  loteria_jugada , "y el ganador es",  lista6 
            
meti_1 = lista_completa.count(1)
meti_2 = lista_completa.count(2)
meti_3 = lista_completa.count(3)
meti_4 = lista_completa.count(4)
meti_5 = lista_completa.count(5)
meti_6 = lista_completa.count(6)



print "Has metido",  meti_1 ,"veces 1 en" ,      sorteo
print "Has metido",  meti_2 , "veces 2 en" ,      sorteo
print "Has metido",  meti_3 , "veces 3 en" ,      sorteo
print "Has metido",  meti_4 , "veces 4 en" ,      sorteo
print "Has metido",  meti_5 , "veces 5 en" ,      sorteo
print "Has metido",  meti_6 , "veces 6 en" ,      sorteo

Y aqui la salida del programa

Has Jugado [1, 2, 3, 4, 5, 6]
[44, 28, 84, 43, 78, 57]
Has Jugado [1, 2, 3, 4, 5, 6]
[7, 32, 31, 73, 2, 55]
Has Jugado [1, 2, 3, 4, 5, 6]
[7, 7, 5, 24, 38, 74]
Has Jugado [1, 2, 3, 4, 5, 6]
[20, 59, 21, 65, 61, 76]
Has Jugado [1, 2, 3, 4, 5, 6]
[33, 14, 81, 45, 14, 46]
Has metido 0 veces 1 en 5
Has metido 0 veces 2 en 5
Has metido 0 veces 3 en 5
Has metido 0 veces 4 en 5
Has metido 0 veces 5 en 5
Has metido 0 veces 6 en 5

Ahora casi todo el código esta comentado pero haré un pequeño algoritmo no muy extenso, para dar las mejoras, si necesitas ahondar te recomiendo las entrada anteriores sobre el kino…

Primero importamos random, luego agregamos las variables, creamos un bucle while para buscar los numero ganadores(la maquina que saca los ganadores) y aquí mismo tenemos una lista para ir agregando los 6 números, a continuación creamos un bucle for para verificar cuantos hemos metido, recordemos que esto es una simulación de sorteos, verificamos si metemos los 6 casi imposible puedes agregar a el bucle while un numero mayor de repeticiones y te darás cuenta, luego lo que nos importa cuantas veces podemos ganar 1 a 6 números :S

Mejoras, podríamos crear una clase para el sorteo así podríamos desligar el tipo de sorteo a la programación y agregarlo como parametros, asi como también la cantidad de veces que se repite o hacerlo multi-funcional para varias loterías 😀 en la próxima entrada lo haré  a ver 😀

Podemos crear una clase para la rectificación y así tendríamos 2 clases 1 para el sorteo y otra para ver si ganamos 😀

Hasta aquí esta entrada, solo quería agregar esta lotería y hacer notar las similitudes de los diferentes sorteos en la programación ;D

Hasta la próxima comentar es Gratis

 

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s