Dipende da che livello di Python sei: se conosci lo slicing delle stringhe e i dizionari puoi fare una cosa del genere:
# realizza il gioco dell'impiccato
print("Gioco dell'impiccato")
print()
print("Q per uscire")
print()
# dizionario con item composti da definizione (usata come chiave) e risposta (usata come valore)
# non è il massimo dell'efficienza ma va bene come esempio
domande = {"Protegge l'uovo": "guscio",
"Quando piove danneggia le piante": "grandine",
"Il contrario di perdere": "vincere",
"Neanche una persona": "nessuno"}
# Iterazione su tutto il dizionario 'domande'
for domanda in domande:
risposta = domande[domanda]
# Costruisco la risposta mascherata
rispostaX = ''
for j in range(0, len(risposta)):
if risposta[j] in "aeiou":
rispostaX += '*'
else:
rispostaX += '_'
errori = 0
print(domanda)
while rispostaX != risposta and errori < 5:
print(rispostaX)
myrisp = input()
# Sanifico un minimo l'input: tengo solo il primo carattere della risposta
if len(myrisp) > 1:
myrisp = myrisp[0:0]
# Se l'utente digita 'Q' (maiuscolo) il gioco termina
if myrisp == 'Q':
print("Arrivederci")
exit(0)
# Controllo se il mio carattere è nella risposta
if myrisp in risposta:
# il carattere c'è, localizzo la posizione e sostituisco nella risposta mascherata
for i in range(0, len(risposta)):
if risposta[i] == myrisp:
if i == 0: # inizio stringa
rispostaX = myrisp + rispostaX[i+1:]
else:
rispostaX = rispostaX[0:i] + myrisp + rispostaX[i+1:]
else:
# il carattere non c'è aumento il contatore degli errori
errori += 1
print(errori)
Ho usato alcune caratteristiche di Python, come l'iterazione sui dizionari, più l'operatore di appartenenza ‘in’ per cercare nelle stringhe.