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 pour Jeu de Pendu sur Python et Tkinter


Sujet :

Python

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2016
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aube (Champagne Ardenne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2016
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Aide pour Jeu de Pendu sur Python et Tkinter
    Bonsoir,
    Je dois créer un jeu de pendu sur python puis le faire fonctionner sur l'interface graphique Tkinter. J'ai fini de coder le pendu, mais je ne sais pas comment faire pour qu'il fonctionne sur tkinter, ni comment faire pour qu'à chaque erreur, l'image change. Si vous voulez bien m'accorder votre aide s'il vous plait, merci.

    Le 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
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    #lettre dans mot
    def letter_word(letter, answer):
        positions= []
     
        #position_lettre
        x=0
        #on regarde chaque lettre du mot
        for alpha in answer:
            #lettre actuelle = lettre recherché
            if alpha == letter:
            #on ajoute la position a la liste x
                positions.append(x)
            x+=1
     
    #retourne la liste des positions
        return positions
     
    #affiche lettre trouvees
    def letter_found(positions,answer):
    #mot a afficher
        word=""
     
    #position_lettre
        x=0
        #on regarde chaque lettre du mot
        for letter in answer:
            #si lettre = lettre deja trouvé
            if x in positions:
                #on ajoute cette lettre au mot a word
                word+=letter
            else:
                #sinon, on met un tiret
                word+="-"
            x+=1
    #retourne le mot a afficher
        return word
     
    #ma liste de mots
    mots=["programmation", "python", "boa", "ordinateur", "ecran", "portable","fusil","voiture"]
    print("il y a", len(mots), "mots en tout, choisissez entre 1 et", len(mots))
    #choix de mot
    x=input("le mot numéro:")
    x=int(x)
    #si chiffre pas compris dans nombre de mots dans liste 
    while x>len(mots):
        print("Entre 1 et", len(mots))
        x=input("le mot numero: ")
        x=int(x)
    answer=mots[(x)-1]
    print(answer)
    #mot utilisés
    Used=[]
    #Essais
    Trials=0
    #lettres trouvés
    Found=[]
     
    #tant que l'utilisateur a encore de essais
    while Trials<10:
        my_guess=input("Pick a letter brother: ")
        while my_guess in Found:
            my_guess=input("Already used, pick another one bro: ")
    #on rajoute dans Found la lettre qu'on vient d'utiliser
        Found.append(my_guess)
        x=letter_word(my_guess, answer)
    #nombre d'essai augmente si liste vide, joueur pas trouvé lettre
        if x == []:
            Trials+=1
        Used+=x
        word=letter_found(Used,answer)
        print(word)
    #essais égal à 10, plus d'essais, perdu
        if Trials==10:
            print("You lost")
            break
    #mot a trouver = mot a afficher, gagné
        if word == answer:
            print("You won!")
            break

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 287
    Points : 36 776
    Points
    36 776
    Par défaut
    Salut,

    Citation Envoyé par Jacques Radeon Voir le message
    Je dois créer un jeu de pendu sur python puis le faire fonctionner sur l'interface graphique Tkinter. J'ai fini de coder le pendu, mais je ne sais pas comment faire pour qu'il fonctionne sur tkinter, ni comment faire pour qu'à chaque erreur, l'image change. Si vous voulez bien m'accorder votre aide s'il vous plait, merci.
    Pour l'instant vos avez un code dit "séquentiel".
    tkinter, c'est une programmation évènementielle.
    C'est tellement différent qu'il faut presque tout ré-écrire.

    Donc, il faut commencer par essayer de comprendre comment çà fonctionne. Et pour çà vous avez des tutos qui sont une bonne base de départ et des documentations plus précises qui vous expliquent comment utiliser les différents widgets.

    Cela digéré, vous saurez comment écrire quelques lignes et si vous rencontrez un problème, vous saurez dire "voilà j'essaie de faire çà, j'ai choisi de le coder ainsi mais çà ne fait pas ce que j'attends". A partir de là, probable que quelqu'un essaiera de vous aider mais pas avant.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2016
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aube (Champagne Ardenne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2016
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Quand vous dites qu'il faut tout re-écrire, ce que j'ai essayé ci-dessous ne marchera pas du tout ?

    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
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    def pendu():
        def letter_word(letter, answer):
            positions= []
     
            x=0
            for alpha in answer:
                if alpha == letter:
                    positions.append(x)
                x+=1
     
            return positions
     
        def letter_found(positions,answer):
            word=""
     
            x=0
            for letter in answer:
                if x in positions:
                    word+=letter
                else:
                    word+="-"
                x+=1
     
            return word
        mots=["programmation", "python", "boa", "ordinateur", "ecran", "portable","fusil","voiture"]
        print("il y a", len(mots), "mots en tout, choisissez entre 1 et", len(mots))
        x=input("le mot numéro:")
        x=int(x)
        while x>len(mots):
            print("Entre 1 et", len(mots))
            x=input("le mot numero: ")
            x=int(x)
        answer=mots[(x)-1]
        print(answer)
        Used=[]
        Trials=0
        Found=[]
     
        while Trials<10:
            my_guess=input("Pick a letter brother: ")
            while my_guess in Found:
                my_guess=input("Already used, pick another one bro: ")
            Found.append(my_guess)
            x=letter_word(my_guess, answer)
            if x == []:
                Trials+=1
            Used+=x
            word=letter_found(Used,answer)
            print(word)
            if Trials==10:
                print("You lost")
                break
            if word == answer:
                print("You won!")
                break
    def submit():
        data=entr1.get()
        txt3.configure(text="Answer:"+str(pendu(data)))
     
    from tkinter import*
    fen1=Tk()
     
     
    txt1= Label(fen1, text='Le mot numéro: ')
    txt1.grid(row=1, sticky=E)
    entr1=Entry(fen1)
    entr1.grid(row=1, column=2)
    bou1= Button(fen1, text='Quitter', command=fen1.destroy)
    bou1.grid(row=4, column=2)
     
    txt2= Label(fen1, text='La lettre: ')
    txt2.grid(row=2, sticky=E)
    entr2=Entry(fen1)
    entr2.grid(row=2, column=2)
    bou2= Button(fen1, text='Submit', command=submit)
    bou2.grid(row=1, column=3)
     
    can1= Canvas(fen1, width=600, height=600, bg='white')
    photo=PhotoImage(file='one modified.gif')
    item=can1.create_image(300, 300, image=photo)
    can1.grid(row=1, column=5, rowspan=3, padx=10, pady=5)
     
    txt3= Label(fen1)
    txt3.grid(row=3, column=6)
    bou3= Button(fen1, text='Submit')
    bou3.grid(row=2, column=3)
     
     
    fen1.mainloop()

  4. #4
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 287
    Points : 36 776
    Points
    36 776
    Par défaut
    Citation Envoyé par Jacques Radeon Voir le message
    Quand vous dites qu'il faut tout re-écrire, ce que j'ai essayé ci-dessous ne marchera pas du tout ?
    Pour l'instant vous avez fait le plus facile: créer des widgets et les afficher. Pour le gros du boulot vous l'avez botté en touche en poussant le vieux code dans une fonction "pendu"...
    Et vous faites quoi après?

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  5. #5
    Candidat au Club
    Homme Profil pro
    en étude
    Inscrit en
    Décembre 2016
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : en étude
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2016
    Messages : 2
    Points : 3
    Points
    3
    Par défaut Petit indice
    Salut, tu ne peux pas le deviner et je trouve que c'est assez mal renseigné pour un débutant, mais en python les interfaces graphiques se font très souvent à l'aide des classes.

    Voici une bonne piste pour débuter : http://python.developpez.com/cours/a.../?page=page_10

Discussions similaires

  1. Besoin d'aide code jeu du pendu python
    Par Dirty_Monkey dans le forum Programmation multimédia/Jeux
    Réponses: 1
    Dernier message: 12/05/2016, 20h54
  2. aide pour jeu de la bataille navale
    Par Jeannot Alpin dans le forum Delphi
    Réponses: 17
    Dernier message: 19/11/2006, 20h33
  3. aide pour créer une faq sur inno setup
    Par fsx999 dans le forum Langage
    Réponses: 3
    Dernier message: 12/06/2006, 20h16
  4. Réponses: 4
    Dernier message: 28/07/2005, 16h22
  5. Aide pour changer de couleur sur les primitifs GLUT
    Par romainhoarau2764 dans le forum GLUT
    Réponses: 3
    Dernier message: 19/03/2005, 13h30

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