Jeu du pendu, souci quand recurrence de caractère

lonewolf -  
 lonewolfs -
Bonjour,

je me suis remis au python et ai essayé de faire un petit jeu du pendu

celui fonctionne ... sauf quand il y a plusieurs fois la meme occurence dans le mot. Exemple : 2 e dans panthere ou 2 adans malaise

Mon programme ne trouve et ne place que la première occurence, donc automatiquement le jeu est perdu

Si vous pouviez m'aider, cela sera super

Merci d'avance

import getpass
mot = getpass.getpass("Entrez le mot caché :")
mot = list(str(mot))
erreur =0
dessins = [
"""
 |     
 |
 |
 |
 |
 |
 |""",
"""
---------
 |     
 |
 |
 |
 |
 |
 |""",
"""
---------
 |     |
 |
 |
 |
 |
 |
 |""",
 """
 ---------
 |     |
 |     o
 |
 |
 |
 |
 |""",
"""
 ---------
 |     |
 |     O
 |     +
 |
 |
 |
 |""",
"""
 ---------
 |     |
 |     O
 |    -+
 |
 |
 |
 |""",
 """
 ---------
 |     |
 |     O
 |    -+-
 |
 |
 |
 |""",
 """
 ---------
 |     |
 |     O
 |   /-+-
 |
 |
 |
 |""",
 """
 ---------
 |     |
 |     O
 |   /-+-\\
 |
 |
 |
 |""",
 """
 ---------
 |     |
 |     O
 |   /-+-\\
 |  --
 |
 |
 |""",
 """
 ---------
 |     |
 |     O
 |   /-+-\\
 |  --   --
 |
 |
 |""",
 """
 ---------
 |     |
 |     O
 |   /-+-\\
 |  --   --
 |   |
 |
 |""",
"""
 ---------
 |     |
 |     O
 |   /-+-\\
 |  --   --
 |    | |
 |
 |""",
"""
 ---------
 |     |
 |     O
 |   /-+-\\
 |  --   --
 |    | |
 |    -
 |""",
"""
 ---------
 |     |
 |     O
 |   /-+-\\
 |  --   --
 |    | |
 |    - -
 |"""]
cpte =len(mot)
mot2 = [" "] * cpte
print(("Le mot a trouver comprend :"),cpte,("caracteres"))
print(mot2)
test = None
while erreur !=15 and test != True:
    lettre = str(input("Entrez votre lettre : "))
    test = lettre in mot
    if test == True:
        place = mot.index(lettre) 
        plac = place + 1
        print(("La lettre trouvé est a la"), plac, ("position"))
        mot2[place] = lettre
        print(mot2)
        test = mot == mot2
        
    else:
        print("La lettre ne se trouve pas de le mot")
        print(dessins[erreur])
        erreur = erreur +1
       

if mot != mot2:
    print("Perdu, vous ferez mieux la prochaine fois")
    print(("Le mot a trouver etait : "),"".join(mot))
else:
    print("bravo, vous etes un champion")
    print(("Le mot a trouver etait bien : "),"".join(mot))




A voir également:

3 réponses

yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 584
 
bonjour, si je vois bien, en plus du mot à trouver, tu utilises une variable dans laquelle tu enregistres les lettres déjà trouvées. pourquoi ne pas plutôt utiliser une variable avec les lettres encore à trouver?
0
lonewolfs
 
Parceque cette variable me permet d'afficher les lettres deja trouvées à leur place pour l'utilisateur.
Exemple : pour le mot 'python' a chaque fois que l'utilisateur trouve une bonne lettre ca lui indique ou :
['' ","y"," "," ","o"," "]

Cordialement
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584
 
je pense que si tu ajoutes une variable avec les lettre non trouvées, cela va résoudre ton problème.
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 584
 
suivant les règles du jeu, il me semble qu'il suffit de "trouver" une seule fois une lettre présente plusieurs fois dans le mot.
0
lonewolfs
 
Effectivement, c'est tout bete mais je n'y ai meme pas pensé
Je vais regarder cela sous cette angle
Merci pour ta remarque
0