Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 17 sur 17

Discussion: Jeu du pendu

  1. #1
    Invité de passage
    Homme Profil pro
    Inscrit en
    novembre 2012
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : novembre 2012
    Messages : 11
    Points : 1
    Points
    1

    Par défaut Jeu du pendu

    Bonsoir,

    J'ai beaucoup de mal avec Python, donc je me tourne vers vous pour avoir des conseils.


    Je dois créer un jeu du pendu avec un mot en minuscule de longueur variable.
    10 essais sont possibles.


    Il faut que ce soit un truc tout "simple".


    Entrez votre mot :
    Essai 1 : _ _ _ _ ... _
    Tapez votre lettre :
    1 lettre trouvée
    Essai 1 (remprend à essai 1 car la lettre précédente est bien dans le mot) : _ _ _ _ ... _
    2 lettres trouvées
    Essai 1 : _ _ _ _ ... _


    Code Python :
    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
     mot_a_trouver = imput("Entrer un mot à trouver : ")
     
    lettre = input("Entrez une lettre : ")
    lettre = lettre.lower()
     
     
    while mot_a_trouver != mot_trouve and nb_chances > 0 :
        print("Mot à trouver {0} (encore {1} chances)".format(mot_trouve, nb_chances))
     
     
        if lettre in mot_a_trouver: # La lettre est dans le mot à trouver
            lettres_trouvees.append(lettre)
            print("Bien joué !")
        else:
            nb_chances -= 1
            print("... non, cette lettre ne se trouve pas dans le mot...")
            mot_trouve = mot_a_trouver
     
     
     
        # A-t-on trouvé le mot ou nos chances sont-elles épuisées ?
        if mot_a_trouver==mot_trouve :
            print("Félicitations ! Vous avez trouvé le mot {0}.".format(mot_a_trouver))
        else:
            print("PENDU !!! Vous avez perdu.")



    Pourriez-vous m'aider ?
    Merci

  2. #2
    Membre actif
    Inscrit en
    septembre 2007
    Messages
    323
    Détails du profil
    Informations forums :
    Inscription : septembre 2007
    Messages : 323
    Points : 182
    Points
    182

    Par défaut

    Bonjour,

    Je pense qu'il faudrait commencer par mettre ça dans ta boucle au lieu du début du code :

    Code :
    1
    2
    lettre = input("Entrez une lettre : ")
    lettre = lettre.lower()
    Par ailleurs, il faudrait ajouter l'incrémentation du nombre de chances à la fin de ta boucle...

    A +

  3. #3
    Invité de passage
    Homme Profil pro
    Inscrit en
    novembre 2012
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : novembre 2012
    Messages : 11
    Points : 1
    Points
    1

    Par défaut

    Bonjour,

    J'ai fais ça :

    Code Python :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    mot_a_trouver = imput("Entrer un mot à trouver : ")
     
     
    while mot_a_trouver != mot_trouve and nb_chances > 0 :
        print("Mot à trouver {0} (encore {1} chances)".format(mot_trouve, nb_chances))
     
        lettre = input("Entrez une lettre : ")
        lettre = lettre.lower()
     
     
        if lettre in mot_a_trouver: # La lettre est dans le mot à trouver
            lettres_trouvees.append(lettre)
            print("Bien joué !")
        else:
        # A-t-on trouvé le mot ou nos chances sont-elles épuisées ?
            if mot_a_trouver==mot_trouve :
                print("Félicitations ! Vous avez trouvé le mot {0}.".format(mot_a_trouver))
            else:
                print("PENDU !!! Vous avez perdu.")
     
            nb_chances -= 1
            print("... non, cette lettre ne se trouve pas dans le mot...")
            mot_trouve = mot_a_trouver


    Quand je l'exécute, j'ai un message d'erreur sur la ligne 1 :
    "NameError: name 'imput' is not defined'

  4. #4
    Membre Expert

    Homme Profil pro
    Inscrit en
    octobre 2008
    Messages
    1 496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : octobre 2008
    Messages : 1 496
    Points : 2 203
    Points
    2 203

    Par défaut

    Pas grand chose à dire,

    imput != input
    Vincent
    Oqapy . Qarte . PaQager

  5. #5
    Invité de passage
    Homme Profil pro
    Inscrit en
    novembre 2012
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : novembre 2012
    Messages : 11
    Points : 1
    Points
    1

    Par défaut

    Ah oui, je me fais toujours avoir avec sa !


    Maintenant, il me met une autre erreur :
    "UnicodeDecodeError: 'ascii' codec can't decode byte 0xe0 in position 14: original not in range (128)"


    J'y comprend rien du tout !

  6. #6
    Membre Expert

    Homme Profil pro
    Inscrit en
    octobre 2008
    Messages
    1 496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : octobre 2008
    Messages : 1 496
    Points : 2 203
    Points
    2 203

    Par défaut

    Tu ne met pas le numéro de ligne mais je suppose que cela vient d'ici:
    Code :
    1
    2
     
    mot_a_trouver = input("Entrer un mot à trouver : ")
    Ajoute ceci en première ligne de ton code:
    Code :
    1
    2
     
    # -*- coding: utf-8 -*-
    Lorsque tu as une erreur, copies le traceback complet que l'on sache où cela se passe.
    Vincent
    Oqapy . Qarte . PaQager

  7. #7
    Invité de passage
    Homme Profil pro
    Inscrit en
    novembre 2012
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : novembre 2012
    Messages : 11
    Points : 1
    Points
    1

    Par défaut

    J'ai fais exactement comme tu m'a dit mais j'ai toujours la même erreur et ça ne me met pas de numéro de ligne.


    Traceback :

    Message File Name Line Position
    Traceback
    <module> <module1> 5
    Win32Input <string> 530
    Win32RawInput <string> 523
    UnicodeDecodeError: 'ascii' codec can't decode byte 0xe0 in position 14: ordinal not in range(128)

  8. #8
    Membre Expert

    Homme Profil pro
    Inscrit en
    octobre 2008
    Messages
    1 496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : octobre 2008
    Messages : 1 496
    Points : 2 203
    Points
    2 203

    Par défaut

    Si tu utilises Python 2, tu dois déclarer tes chaînes unicode en les faisant précéder d'un u

    Code :
    1
    2
     
    mot_a_trouver = input(u"Entrer un mot à trouver : ")
    Si tu utilises Python 3, alors cela vient peut-être de l'environement dans lequel tu lance ton code.

    Utilise-tu une IDE ?

    Je previens de suite, sous Windows je ne pourrai pas aider beaucoup.
    Vincent
    Oqapy . Qarte . PaQager

  9. #9
    Invité de passage
    Homme Profil pro
    Inscrit en
    novembre 2012
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : novembre 2012
    Messages : 11
    Points : 1
    Points
    1

    Par défaut

    J'utilise AmiensPython sous Windows 7.

    Qu'est ce qu'une IDE ?

  10. #10
    Membre Expert

    Homme Profil pro
    Inscrit en
    octobre 2008
    Messages
    1 496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : octobre 2008
    Messages : 1 496
    Points : 2 203
    Points
    2 203

    Par défaut

    J'ai l'impression que AmiensPython est une Environnement de Développement Intégré, IDE en Anglais.

    Sur leur site, la page Historique laisse planer un doute quand à son utilisation avec Python 3, faudrait que tu vérifies cela.



    http://amienspython.tuxfamily.org/
    Vincent
    Oqapy . Qarte . PaQager

  11. #11
    Invité de passage
    Homme Profil pro
    Inscrit en
    novembre 2012
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : novembre 2012
    Messages : 11
    Points : 1
    Points
    1

    Par défaut

    Citation Envoyé par VinsS Voir le message
    J'ai l'impression que AmiensPython est une Environnement de Développement Intégré, IDE en Anglais.

    Sur leur site, la page Historique laisse planer un doute quand à son utilisation avec Python 3, faudrait que tu vérifies cela.



    http://amienspython.tuxfamily.org/
    Ah ok

    Comment je fais pour vérifier ?
    Je télécharge Python 3 et je vois si le code fonctionne ?

  12. #12
    Membre Expert

    Homme Profil pro
    Inscrit en
    octobre 2008
    Messages
    1 496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : octobre 2008
    Messages : 1 496
    Points : 2 203
    Points
    2 203

    Par défaut

    Ha !

    J'avais finit par penser que tu utilisais Python 3.

    Ben alors, fais comme j'ai dit plus haut; préfixe tes chaînes de texte avec un u.
    Vincent
    Oqapy . Qarte . PaQager

  13. #13
    Invité de passage
    Homme Profil pro
    Inscrit en
    novembre 2012
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : novembre 2012
    Messages : 11
    Points : 1
    Points
    1

    Par défaut

    C'est ce que j'ai fais mais j'ai toujours une erreur.


    Message File Name Line Position
    SyntaxError
    (unicode error) 'utf8' codec can't decode byte 0xe0 in position 0: unexpected end of data (<module1>, line 4) <module1> 4



    Code :
    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
    # -*- coding: utf-8 -*-
     
     
    mot_a_trouver = input(u"Entrer un mot à trouver : ")
     
     
    while mot_a_trouver != mot_trouve and nb_chances > 0 :
        print(u"Mot à trouver {0} (encore {1} chances)".format(mot_trouve, nb_chances))
     
        lettre = input(u"Entrez une lettre : ")
        lettre = lettre.lower()
     
     
        if lettre in mot_a_trouver: # La lettre est dans le mot à trouver
            lettres_trouvees.append(lettre)
            print(u"Bien joué !")
        else:
        # A-t-on trouvé le mot ou nos chances sont-elles épuisées ?
            if mot_a_trouver==mot_trouve :
                print(u"Félicitations ! Vous avez trouvé le mot {0}.".format(mot_a_trouver))
            else:
                print(u"PENDU !!! Vous avez perdu.")
     
            nb_chances -= 1
            print(u"... non, cette lettre ne se trouve pas dans le mot...")
            mot_trouve = mot_a_trouver

  14. #14
    Expert Confirmé Sénior
    Homme Profil pro
    Architecte technique
    Inscrit en
    juin 2008
    Messages
    4 748
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Industrie

    Informations forums :
    Inscription : juin 2008
    Messages : 4 748
    Points : 7 160
    Points
    7 160

    Par défaut

    Salut,
    Avec Python 2.7, il serait préférable d'utiliser raw_input (plutôt qu'input).
    - W
    Architectures Post-Modernes

  15. #15
    Invité de passage
    Homme Profil pro
    Inscrit en
    novembre 2012
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : novembre 2012
    Messages : 11
    Points : 1
    Points
    1

    Par défaut

    Salut

    Je viens de tester avec raw_input mais c'est toujours pareil.

  16. #16
    Expert Confirmé Sénior
    Homme Profil pro
    Architecte technique
    Inscrit en
    juin 2008
    Messages
    4 748
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Industrie

    Informations forums :
    Inscription : juin 2008
    Messages : 4 748
    Points : 7 160
    Points
    7 160

    Par défaut

    Citation Envoyé par zebrac Voir le message
    Je viens de tester avec raw_input mais c'est toujours pareil.
    Désolé.
    En fait, vous devriez utiliser la fonction "demande" du module lycee.py qui fait partie de http://amienspython.tuxfamily.org/

    Vos enseignants l'ont écrite pour vous faciliter la vie. Et évitez de tomber dans les pièges posés par les délices de l'encoding.
    Si vous utilisez "demande", supprimez les "u" préfixe de vos chaînes.

    Bon courage
    - W
    Architectures Post-Modernes

  17. #17
    Membre Expert

    Homme Profil pro
    Inscrit en
    octobre 2008
    Messages
    1 496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : octobre 2008
    Messages : 1 496
    Points : 2 203
    Points
    2 203

    Par défaut

    Une autre solution est de copier sur la feuille du voisin.

    http://www.developpez.net/forums/d12...u/#post7025930
    Vincent
    Oqapy . Qarte . PaQager

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •