Codice Python – Gioco dell’Impiccato

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()