Questo è il codice del gioco dell’impiccato scritto in Python:
import random
class GiocoImpiccato:
def __init__(self, parole, tentativi_max=6):
self.parole = parole
self.parola_segreta = random.choice(self.parole).lower()
self.lettere_indovinate = []
self.tentativi_rimasti = tentativi_max
self.lettere_sbagliate = []
def mostra_stato(self):
parola_mostrata = ""
for lettera in self.parola_segreta:
if lettera in self.lettere_indovinate:
parola_mostrata += lettera
else:
parola_mostrata += "_"
return parola_mostrata
def indovina_lettera(self, lettera):
lettera = lettera.lower()
if lettera in self.lettere_indovinate or lettera in self.lettere_sbagliate:
return "Hai già provato questa lettera."
if lettera in self.parola_segreta:
self.lettere_indovinate.append(lettera)
return "Lettera corretta!"
else:
self.lettere_sbagliate.append(lettera)
self.tentativi_rimasti -= 1
return "Lettera sbagliata!"
def parola_indovinata(self):
for lettera in self.parola_segreta:
if lettera not in self.lettere_indovinate:
return False
return True
def gioco_finito(self):
return self.parola_indovinata() or self.tentativi_rimasti == 0
def avvia_gioco():
parole_possibili = ["scuola", "computer", "programma", "python", "libro", "penna"]
gioco = GiocoImpiccato(parole_possibili)
print("Benvenuto al gioco dell'impiccato!")
while not gioco.gioco_finito():
print("\nParola:", gioco.mostra_stato())
print("Tentativi rimasti:", gioco.tentativi_rimasti)
print("Lettere sbagliate:", ", ".join(gioco.lettere_sbagliate))
lettera = input("Inserisci una lettera: ")
if not lettera.isalpha() or len(lettera) != 1:
print("Inserisci solo UNA lettera valida.")
continue
messaggio = gioco.indovina_lettera(lettera)
print(messaggio)
print("\n--- FINE DEL GIOCO ---")
if gioco.parola_indovinata():
print(" Complimenti! Hai indovinato la parola:", gioco.parola_segreta)
else:
print(" Hai perso! La parola era:", gioco.parola_segreta)
if __name__ == "__main__":
avvia_gioco()