IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

Aide programme pendu


Sujet :

Python

  1. #1
    Membre averti
    Homme Profil pro
    Etudiant
    Inscrit en
    Mai 2020
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 23
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Etudiant

    Informations forums :
    Inscription : Mai 2020
    Messages : 42
    Par défaut Aide programme pendu
    Bonjour,
    Je débute en python et je rencontre un problème lors de l’exécution de mon programme. Mon programme est un pendu qui a remplace le mon "mystère" par des "_". Quand l'utilisateur rentre une lettre correspondant au mot "mystère" le _ se remplace par la bonne lettre. Sauf que, à chaque nouvelle itération de la boucle, la lettre qu'on venait de trouver disparait a cause de mon else à la fin. Sauf que je ne vois pas faire autrement.
    Pouvez-vous me donner une piste afin que je puisse résoudre mon problème ?
    Je vous mets mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
     
    from random import *
     
    #Ouvre le fichier contenant les mots
    x = open("D:/Documents/Python/T11_Pendu/T11_pendu.txt")
     
    #pemet d'avoir touts les mots séparés
    lignes = x.readlines()
     
    #choix d'un des mots présents dans le fichier aléatoirement 
    alea = choice(lignes)
    print(alea)  
     
    #Met les _ correspondant au nombre de lettes du mot alea 
    for lettre in alea : 
        tiret_touch_8 = print (" _ ", end = "  ")
    print('\n')
     
    # Sépare les lettres lu mot 
    separer = list(alea)
     
    #Permet de savoir si la lettre choisie est contenue dans le mot aleatoire et savoir sa position 
     
    resultat = ""
    a=0
    while a <= (len(separer)) :
        print('\n')
        lettre = str(input("Quelle lettre voulez vous choisir ? "))
        for index in range(len(separer)) :
            if lettre == separer[int(index)] :
                print (lettre, end = "   ")
                a+=1
            else :
                print (" _ ", end = "   ")
     
     
     
     
    x.close()

  2. #2
    Membre Expert
    Avatar de MPython Alaplancha
    Homme Profil pro
    Paysan à 3 francs six sous
    Inscrit en
    Juin 2018
    Messages
    919
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Paysan à 3 francs six sous
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juin 2018
    Messages : 919
    Billets dans le blog
    8
    Par défaut
    Bonjour,
    Utilise une liste pour mémoriser l'état de ton mot_tirets:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    #Met les _ correspondant au nombre de lettes du mot alea
    mot_tirets = [] 
    for lettre in alea : 
        mot_tirets.append("_")
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    while a <= (len(separer)) :
        print('\n')
        lettre = str(input("Quelle lettre voulez vous choisir ? "))
        for index in range(len(separer)) :
            if lettre == separer[int(index)] :
                mot_tirets[index] = lettre
                a+=1
        for l in mot_tirets:
            print(l,  end=' ')
    Conseil ; utilise des noms plus explicites pour tes variables.

  3. #3
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 827
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 827
    Billets dans le blog
    1
    Par défaut
    Bonjour

    Mémorise les lettres proposées par l'utilisateur. Ensuite affiche simplement le mot à trouver, tout en remplaçant les lettres du mot qui n'ont pas été proposées par un tiret.
    Exemple
    Code python : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    >>> mot="barbapapa"
    >>> choix=set("azerty")
    >>> print("".join(x if x in choix else "_" for x in mot))
    _ar_a_a_a
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. aide programmation d'un quizz
    Par mattboul dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 11/02/2007, 10h07
  2. Aide programme C
    Par jordan49 dans le forum C
    Réponses: 8
    Dernier message: 02/10/2006, 07h35
  3. aide programmation en C
    Par luce2005 dans le forum C
    Réponses: 9
    Dernier message: 22/08/2006, 12h01
  4. aide programme debutant
    Par mator dans le forum C
    Réponses: 5
    Dernier message: 20/04/2006, 19h30
  5. PERL AIDE PROGRAMMATION
    Par kiza dans le forum Langage
    Réponses: 2
    Dernier message: 17/10/2005, 16h57

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo