Craps

Vedi la discussione

Simulazione del gioco con due dadi Craps

import random
#------------------------------------------------------------- 
def dado()  : return random.randint(1,6)
def lancio(): return dado()+dado()
#------------------------------------------------------------- 
def gioco(ok):
    primo=lancio()
    if(ok):
        print(primo, end=" ")
    if(primo == 7) or (primo == 11):
        esito=+1
    elif(primo == 2) or (primo == 3) or (primo == 12):
        esito=-1
    else:
        esito=0
    while(esito == 0):
        ciclo=lancio()
        if(ok):
            print(ciclo, end=" ")
        if(ciclo == primo):
            esito=+1
        elif(ciclo == 7):
            esito=-1
        else:
            primo=ciclo
        if(ok):
            if(esito == 1): print("+")
            else          : print("-")
    return esito
#------------------------------------------------------------- 
QUANTI=100  # Poche giocate
STAMPA=True # Traccia degli eventi
contatore=0
for g in range(QUANTI):
    contatore+=gioco(STAMPA)
bilancio=contatore/QUANTI*100
#------------------------------------------------------------- 
print()
print("Bilancio dopo %i giocate = %.2f %%" %(QUANTI,bilancio))

Per avere risultati significativi

...
QUANTI=10000 # MOLTE giocate
STAMPA=False # Senza traccia degli eventi
...

matplotlib

Osserva il bilancio finale all’aumentare del numero di giocate…

import matplotlib.pyplot as plt
import random
...
QUANTI=100                      # 1000 | 10000
STAMPA=False
contatore=0
CONTATORE=[]                    # traccia stato
for g in range(QUANTI):
    contatore+=gioco(STAMPA)
    CONTATORE.append(contatore) # aggiunge stato attuale
...
plt.grid (which="major")
plt.plot (CONTATORE)
plt.title("Craps")

plt.show()