Obiettivi di apprendimento:
random.choice per la mossa del computer.if/elif/else complessi).Programma Esempio:
import random
def rock_paper_scissors_game():
print("🗿 CARTA, SASSO, FORBICE ✂️")
# Dizionario per mappare l'input utente a un nome completo e visualizzare le opzioni
opzioni = {
's': 'Sasso',
'c': 'Carta',
'f': 'Forbice'
}
# Regole di vittoria (Mossa Vincente: Mossa Sconfitta)
regole = {
'Sasso': 'Forbice', # Sasso batte Forbice
'Carta': 'Sasso', # Carta batte Sasso
'Forbice': 'Carta' # Forbice batte Carta
}
while True:
print("\n=== Fai la tua mossa ===")
print("S: Sasso | C: Carta | F: Forbice | Q: Esci")
mossa_utente_raw = input("La tua scelta: ").lower().strip()
if mossa_utente_raw == 'q':
print("Arrivederci!")
break
if mossa_utente_raw not in opzioni:
print("❌ Scelta non valida. Riprova.")
continue
mossa_utente = opzioni[mossa_utente_raw]
# Mossa del computer (sceglie tra i valori del dizionario 'opzioni')
mossa_computer = random.choice(list(opzioni.values()))
print("-" * 30)
print(f"Tu hai scelto: {mossa_utente}")
print(f"Il Computer ha scelto: {mossa_computer}")
print("-" * 30)
# Logica del gioco
if mossa_utente == mossa_computer:
print("È un pareggio! 🤝")
elif regole.get(mossa_utente) == mossa_computer:
# Verifica se la mossa utente batte la mossa computer
print(f"Hai vinto! {mossa_utente} batte {mossa_computer}. 🎉")
else:
# Se non è pareggio e l'utente non ha vinto, il computer vince
print(f"Hai perso! {mossa_computer} batte {mossa_utente}. 💻")
# rock_paper_scissors_game()