Jeu du pendu, souci quand recurrence de caractère

Fermé
lonewolf - Modifié le 17 févr. 2018 à 17:57
 lonewolfs - 17 févr. 2018 à 23:17
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 23349 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 26 novembre 2024 Ambassadeur 1 554
Modifié le 17 févr. 2018 à 18:57
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
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 23349 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 26 novembre 2024 1 554
17 févr. 2018 à 21:32
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 23349 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 26 novembre 2024 Ambassadeur 1 554
17 févr. 2018 à 21:34
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
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