Obiettivi di apprendimento:
random.choice).Programma Esempio:
import random
# Simboli e i loro moltiplicatori di vincita
SIMBOLI = {
"🍒": 10, # Ciliegia
"🍊": 5, # Arancia
"⭐": 3, # Stella
"7": 25, # Sette
"💎": 50, # Diamante
}
def genera_rulli(num_rulli=3):
"""Genera una riga di simboli casuali."""
simboli_lista = list(SIMBOLI.keys())
# Aumenta la probabilità di simboli più 'economici'
simboli_probabilita = simboli_lista * 3
# Genera la riga estraendo casualmente dalla lista pesata
rulli = [random.choice(simboli_probabilita) for _ in range(num_rulli)]
return rulli
def controlla_vincita(rulli, puntata):
"""Controlla se ci sono tre simboli uguali (Jackpot)."""
# Se tutti i simboli sono uguali
if rulli[0] == rulli[1] == rulli[2]:
simbolo_vincente = rulli[0]
moltiplicatore = SIMBOLI[simbolo_vincente]
vincita = puntata * moltiplicatore
print("🎉🎉🎉 JACKPOT! 🎉🎉🎉")
print(f"Hai vinto: {moltiplicatore}x la tua puntata!")
return vincita
return 0 # Nessuna vincita
def slot_machine():
saldo = 100.00
print("🎰 SLOT MACHINE 🎰")
print(f"Simboli e premi: {SIMBOLI}")
while saldo > 0:
print(f"\nSaldo attuale: €{saldo:,.2f}")
try:
puntata = float(input("Inserisci la puntata (o 0 per uscire): "))
if puntata == 0:
break
if puntata > saldo or puntata <= 0:
print("❌ Puntata non valida o superiore al saldo.")
continue
saldo -= puntata
rulli = genera_rulli(3)
print("--- RULLI ---")
print(f"| {' | '.join(rulli)} |")
print("--------")
vincita = controlla_vincita(rulli, puntata)
if vincita > 0:
saldo += vincita
print(f"Hai vinto €{vincita:,.2f}!")
else:
print("Peccato, riprova! 🙁")
except ValueError:
print("❌ Inserimento non valido.")
print(f"\nGame Over! Saldo finale: €{saldo:,.2f}")
# slot_machine()