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 :

pendu tkinter python


Sujet :

Python

  1. #1
    Nouveau Candidat au Club
    Femme Profil pro
    étudiante
    Inscrit en
    Janvier 2015
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : étudiante
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2015
    Messages : 9
    Points : 1
    Points
    1
    Par défaut pendu tkinter python
    Bonjour à tous,
    Excusez moi de vous déranger. Je dois réaliser un pendu avec Python et tkinter pour l'interface graphique. Lorsque j''exécute le programme, tout s'ouvre correctement mais lorsque je clique sur les lettres, elles sont toutes fausses, aucune ne s'affiche. Pouvez vous m'aider svp. Voici mon code
    je vous mets mon code en pièce jointe

    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
    # Le jeu du pendu
    from tkinter import *
    from random import choice
     
    fichier = open("liste_mots.txt")
    liste_mots = fichier.readlines() # met tous les mots du fichier dans une liste
    fichier.close()
     
    def lettre_dans_mot(lettre) :
                global partie_en_cours, mot_partiel, mot_choisi, nb_echecs, image_pendu
                if partie_en_cours :
                    nouveau_mot_partiel = "-"
                    lettre_dans_mot = False
                    i=0
                    while i>len(mot_choisi):
                            if mot_choisi[i]==lettre:
                                    lettre_dans_mot.append(lettres)
                                    nouveau_mot_partiel = nouveau_mot_partiel + lettre
                                    lettre_dans_mot = True
                            else:
                                    nouveau_mot_partiel = nouveau_mot_partiel + mot_partiel[i]
                            i+=1
                    mot_partiel = nouveau_mot_partiel
                    afficher_mot(mot_partiel)
                    if not lettre_dans_mot : # lettre fausse. Changer le dessin.
                        nb_echecs += 1
                        nomFichier = "pendu_"+str(nb_echecs)+".gif"
                        photo=PhotoImage(file=nomFichier)
                        image_pendu.config(image=photo)
                        image_pendu.image=photo
                        if nb_echecs == 8: # trop d'erreurs. Fini.
                                partie_en_cours = False
                                afficher_mot(mot_choisi)
                    elif mot_partiel == mot_choisi: # le mot a été trouvé !
                            partie_en_cours = False
     
    def afficher_mot(mot):
        global lettres
        mot_large = ""
        i=0
        while i<len(mot): # ajoute un espace entre les lettres
            mot_large = mot_large + mot[i] + " "
            i+=1
        canevas.delete(lettres)
        lettres = canevas.create_text(320,60,text=mot_large,fill='black',font='Courrier 30')
     
    def init_jeu():
        global mot_choisi, mot_partiel, image_pendu, lettres, nb_echecs
        global partie_en_cours, liste_mots
        nb_echecs = 0
        partie_en_cours = True
        mot_choisi = choice(liste_mots).rstrip()
        mot_partiel = "-" * len(mot_choisi)
        canevas.delete(lettres)
        afficher_mot(mot_partiel)
        photo=PhotoImage(file="imagependu.gif")
        image_pendu.config(image=photo)
        image_pendu.image=photo
     
     
     
    # création du widget principal
     
    fenetre = Tk()
    fenetre.title("Le jeu du pendu")
     
    canevas = Canvas(fenetre, bg='white', height=500, width=620)
    canevas.pack(side=BOTTOM)
     
    bouton = [0]*26
    for i in range(26):
        bouton[i] = Button(fenetre,text=chr(i+65),command=lambda x=i+65:lettre_dans_mot(chr(x)))
        bouton[i].pack(side=LEFT)
     
    bouton2 = Button(fenetre,text='Quitter',command=fenetre.quit)
    bouton2.pack(side=RIGHT)
    bouton1 = Button(fenetre,text='Recommencer',command=init_jeu)
    bouton1.pack(side=RIGHT)
     
    photo=PhotoImage(file="imagependu.gif")
    image_pendu = Label(canevas, image=photo, border=0)
    image_pendu.place(x=120, y=140)
    lettres = canevas.create_text(320,60,text="",fill='black',font='Courrier 30')
     
    init_jeu()
     
    fenetre.mainloop()
    fenetre.destroy()
    liste_mots.txt

  2. #2
    Membre expérimenté Avatar de plxpy
    Homme Profil pro
    Ingénieur géographe
    Inscrit en
    Janvier 2009
    Messages
    792
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur géographe
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2009
    Messages : 792
    Points : 1 481
    Points
    1 481
    Par défaut
    Bonjour

    Citation Envoyé par jrose15 Voir le message
    Bonjour à tous,
    Excusez moi de vous déranger.
    Bienvenue dans le forum et tu ne nous déranges pas, ... mais ... l'indentation faisant partie à part entière de python, ton code posté tel quel est "tout pourri". Il faut l'analyser pour essayer de deviner ce que tu as réellement écrit, quand tu as volontairement indenté les lignes.

    Pourrais-tu modifier ton post, en utilisant la balise CODE (bouton # dans l'éditeur) ?
    "La simplicité ne précède pas la complexité, elle la suit." - Alan J. Perlis
    DVP ? Pensez aux cours et tutos, ainsi qu'à la FAQ !

  3. #3
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 283
    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 283
    Points : 36 770
    Points
    36 770
    Par défaut
    Salut,

    Citation Envoyé par jrose15 Voir le message
    Je dois réaliser un pendu avec Python et tkinter pour l'interface graphique.
    N'oubliez pas que tout l'intérêt d'un tel exercice sera le temps que vous aller passer à vous battre avec l'ordinateur pour que le jeu fonctionne.
    La seule chose qu'on peut essayer de faire pour vous aider sera de vous indiquer "quoi regarder" ou "comment construire"...
    Autrement dit, plus de boulot.

    A mon sens, mélanger la complication d'un affichage graphique tel que tkinter et les algorithmes du jeu n'est pas une bonne idée.

    Regardez ce bout de code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
          nouveau_mot_partiel = "-"
                    lettre_dans_mot = False
                    i=0
                    while i>len(mot_choisi):
                            if mot_choisi[i]==lettre:
                                    lettre_dans_mot.append(lettres)
                                    nouveau_mot_partiel = nouveau_mot_partiel + lettre
                                    lettre_dans_mot = True
                            else:
                                    nouveau_mot_partiel = nouveau_mot_partiel + mot_partiel[i]
                            i+=1
                    mot_partiel = nouveau_mot_partiel
                    afficher_mot(mot_partiel)
    Ce pourrait être une fonction qui prend (mot_choisi, mot_partiel, lettre) en paramètres et qui retourne un nouveau mot partiel ou mot choisi si une nouvelle lettre à été trouvée.
    Outre que cela supprime nombre de variables globales, cela vous permet de "tester" que la fonction fait ce que vous en attendez sans vous prendre le chou tout de suite avec tkinter.
    L'idée étant de découper le problème en morceaux qu'on peu s'amuser à faire fonctionner indépendamment les uns des autres et les assembler lorsqu'on est confiant sur ce qu'ils font.

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

  4. #4
    Nouveau Candidat au Club
    Femme Profil pro
    étudiante
    Inscrit en
    Janvier 2015
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : étudiante
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2015
    Messages : 9
    Points : 1
    Points
    1
    Par défaut Plus d'issue
    Citation Envoyé par wiztricks Voir le message
    Salut,



    N'oubliez pas que tout l'intérêt d'un tel exercice sera le temps que vous aller passer à vous battre avec l'ordinateur pour que le jeu fonctionne.
    La seule chose qu'on peut essayer de faire pour vous aider sera de vous indiquer "quoi regarder" ou "comment construire"...
    Autrement dit, plus de boulot.

    A mon sens, mélanger la complication d'un affichage graphique tel que tkinter et les algorithmes du jeu n'est pas une bonne idée.

    Regardez ce bout de code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
        nouveau_mot_partiel = "-"
                    lettre_dans_mot = False
                    i=0
                    while i>len(mot_choisi):
                            if mot_choisi[i]==lettre:
                                    lettre_dans_mot.append(lettres)
                                    nouveau_mot_partiel = nouveau_mot_partiel + lettre
                                    lettre_dans_mot = True
                            else:
                                    nouveau_mot_partiel = nouveau_mot_partiel + mot_partiel[i]
                            i+=1
                    mot_partiel = nouveau_mot_partiel
                    afficher_mot(mot_partiel)
    -> Disons que ça fait deux semaines que je travaille sans relâche sur ce code et qu'il me reste qu'un soucis à résoudre .. je dois rendre ce travail avant demain minuit ..

  5. #5
    Nouveau Candidat au Club
    Femme Profil pro
    étudiante
    Inscrit en
    Janvier 2015
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : étudiante
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2015
    Messages : 9
    Points : 1
    Points
    1
    Par défaut Lettres toutes considérées fausses
    Le seule problème que je rencontre lorsque j'ouvre le jeu c'est que lorsque je clique sur les lettres, le pendu se construit, toutes les lettres sont considérées comme fausses donc. Et une fois arrivé à 8 échecs, le pendu est complet et le mot s'affiche ! Donc seul soucis lorsque je clique sur les lettres .. :/

  6. #6
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 283
    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 283
    Points : 36 770
    Points
    36 770
    Par défaut
    Citation Envoyé par jrose15 Voir le message
    Le seule problème que je rencontre lorsque j'ouvre le jeu c'est que lorsque je clique sur les lettres, le pendu se construit, toutes les lettres sont considérées comme fausses donc. Et une fois arrivé à 8 échecs, le pendu est complet et le mot s'affiche ! Donc seul soucis lorsque je clique sur les lettres .. :/
    Un truc comme:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
                    i=0
                    while i>len(mot_choisi):
                               ....
    n'a aucune chance de faire ce que vous attendez.

    Pire, il n'y a pas que les débutants qui font ce genre d'erreur... les professionnels aussi car ils modifient parfois du code sans trop réfléchir parce qu'ils sont fatigués.
    Si on s'en sort c'est qu'on "teste" que çà fait bien ce qu'on attend avant d'intégrer çà dans un code plus compliqué.

    Citation Envoyé par jrose15 Voir le message
    -> Disons que ça fait deux semaines que je travaille sans relâche sur ce code et qu'il me reste qu'un soucis à résoudre .. je dois rendre ce travail avant demain minuit ..
    Problème: ce n'est pas la seule erreur => "tester" avant "d'intégrer".

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

  7. #7
    Nouveau Candidat au Club
    Femme Profil pro
    étudiante
    Inscrit en
    Janvier 2015
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : étudiante
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2015
    Messages : 9
    Points : 1
    Points
    1
    Par défaut Trop
    Selon vous, je devrais changer tout mon code ?

  8. #8
    Nouveau Candidat au Club
    Femme Profil pro
    étudiante
    Inscrit en
    Janvier 2015
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : étudiante
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2015
    Messages : 9
    Points : 1
    Points
    1
    Par défaut Autre soucis
    J'ai créer un autre code sans interface graphique différent de celui la qui fonctionne parfaitement! Mais le soucis pour lui est que je n'arrive pas à faire l'interface graphique ..

  9. #9
    Nouveau Candidat au Club
    Femme Profil pro
    étudiante
    Inscrit en
    Janvier 2015
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : étudiante
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2015
    Messages : 9
    Points : 1
    Points
    1
    Par défaut Autre code
    Citation Envoyé par wiztricks Voir le message
    Problème: ce n'est pas la seule erreur => "tester" avant "d'intégrer".
    Voilà l'autre code que j'ai fais et qui fonctionne parfaitement, mais difficultés pour faire interface graphique.

    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
    def lettre_dans_mot(lettre, mot_a_trouver):
        positions = []
     
        position_actuelle = 0
        for lettre_mot in mot_a_trouver:
            if lettre_mot == lettre:
                positions.append(position_actuelle)
            position_actuelle+=1
     
        return positions
     
    def affiche_lettres_trouvees(positions,mot_a_trouver):
        mot_a_afficher = ''
     
        position_actuelle = 0
        for lettre_mot in mot_a_trouver:
            if position_actuelle in positions:
                mot_a_afficher+=lettre_mot
            else:
                mot_a_afficher+='-'
            position_actuelle+=1
     
        return mot_a_afficher
     
    def choisir_mot(nom_fichier):
        liste_de_mots=[]
     
        fichier=open(nom_fichier, "r")
        for ligne in fichier:
                ligne=ligne.strip("\n")
                liste_de_mots.append(ligne)
     
        shuffle(liste_de_mots)
        mot_a_trouver=liste_de_mots[0]    
     
        return mot_a_trouver
     
    mot_a_trouver=choisir_mot("liste_mots.txt")
    positions_tout=[]
    print(mot_a_trouver)
    essais=0
    lettres_trouvees=[]
     
    while essais<7:
        lettre_joueur=''
        while lettre_joueur in lettres_trouvees:
            lettre_joueur=input("Entrez une lettre:")
        lettres_trouvees.append(lettre_joueur)
        positions_actuelle=lettre_dans_mot(lettre_joueur,mot_a_trouver)
        if positions_actuelle == []:
            essais+=1
        positions_tout+=positions_actuelle
        mot_a_afficher=affiche_lettres_trouvees(positions_tout,mot_a_trouver)
        print(mot_a_afficher)
        if mot_a_afficher== mot_a_trouver:
            print("bravo")

  10. #10
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 283
    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 283
    Points : 36 770
    Points
    36 770
    Par défaut
    Citation Envoyé par jrose15 Voir le message
    Selon vous, je devrais changer tout mon code ?
    Il y a des trucs qui fonctionnent et d'autres non.
    Tout n'est pas à jeter mais il faut essayer de le décomposer en fonctions testables.
    L'intérêt sera pousser de la complexité dans des fonctions dont vous pourrez être sûr du fonctionnement et de vous concentrer sur les enchaînements "logiques".
    Un de vos problèmes est que l'algo se raconte assez simplement:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
        if partie_en_cours :
            # si lettre dans mot_choisi:
            #     - construire un nouveau mot partiel
            #     - actualiser mot partiel.
            #     quid de lettre déjà dans mot_partiel
            #     est-ce qu'on a terminé la partie?
            # sinon:
            #     traiter echec.
    Si le code associé à cet enchaînement "simple" devient trop long, vous n'allez plus savoir ce qui est "détail" et ce qui est "logique d'ensemble". Dit autrement, il ne devrait y avoir guère plus de lignes de code que de commentaires... Et si vous choisissez bien le nom de vos variables et fonctions, vous pourrez supprimer les commentaires, le code tiendra tout seul.
    Pire, lors de la mise au point, une correction va ouvrir la porte a un nouveau bug, car pas facile d'assurer la cohérence de l'ensemble.
    C'est pour çà qu'on découpe le problème en fonctions testables et qu'on évite un trop de variables globales.

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

  11. #11
    Nouveau Candidat au Club
    Femme Profil pro
    étudiante
    Inscrit en
    Janvier 2015
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : étudiante
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2015
    Messages : 9
    Points : 1
    Points
    1
    Par défaut
    Citation Envoyé par wiztricks Voir le message
    Tout n'est pas à jeter mais il faut essayer de le décomposer en fonctions testables.
    Je vais donc partir de ce code qui fonctionne parfaitement

    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
     
    def lettre_dans_mot(lettre, mot_a_trouver):
        positions = []
     
        position_actuelle = 0
        for lettre_mot in mot_a_trouver:
            if lettre_mot == lettre:
                positions.append(position_actuelle)
            position_actuelle+=1
     
        return positions
     
    def affiche_lettres_trouvees(positions,mot_a_trouver):
        mot_a_afficher = ''
     
        position_actuelle = 0
        for lettre_mot in mot_a_trouver:
            if position_actuelle in positions:
                mot_a_afficher+=lettre_mot
            else:
                mot_a_afficher+='-'
            position_actuelle+=1
     
        return mot_a_afficher
     
    def choisir_mot(nom_fichier):
        liste_de_mots=[]
     
        fichier=open(nom_fichier, "r")
        for ligne in fichier:
                ligne=ligne.strip("\n")
                liste_de_mots.append(ligne)
     
        shuffle(liste_de_mots)
        mot_a_trouver=liste_de_mots[0]    
     
        return mot_a_trouver
     
    mot_a_trouver=choisir_mot("liste_mots.txt")
    positions_tout=[]
    print(mot_a_trouver)
    essais=0
    lettres_trouvees=[]
     
    while essais<7:
        lettre_joueur=''
        while lettre_joueur in lettres_trouvees:
            lettre_joueur=input("Entrez une lettre:")
        lettres_trouvees.append(lettre_joueur)
        positions_actuelle=lettre_dans_mot(lettre_joueur,mot_a_trouver)
        if positions_actuelle == []:
            essais+=1
        positions_tout+=positions_actuelle
        mot_a_afficher=affiche_lettres_trouvees(positions_tout,mot_a_trouver)
        print(mot_a_afficher)
        if mot_a_afficher== mot_a_trouver:
            print("bravo")
    Pouvez vous 'maider à faire la def init_jeu .. ? seul truc qui me manque pour faire mon interface graphique ..

  12. #12
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 283
    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 283
    Points : 36 770
    Points
    36 770
    Par défaut
    Citation Envoyé par jrose15 Voir le message
    Pouvez vous 'maider à faire la def init_jeu .. ? seul truc qui me manque pour faire mon interface graphique ..

    Vous avez écrit un jeu qui fonctionne côté "console". C'est bien!
    Mais votre découpage en fonctions s'adapte mal au passage d'une programmation séquentielle (la console) à une programmation événementielle (le GUI tkinter).
    Techniquement, c'est parce que vous ne l'avez pas découpé là ou il faut.
    Mais il faut des années pour apprendre à manier le couteau, donc... le jeu qui fonctionne côté console est à garder dans un coin "pour s'en inspirer".

    A mon sens, ce qui ne va pas est d'abord la fonction "lettre dans mot".
    Je vous ai donné des indications pour essayer de la construire par étapes.
    Désolé si elles ne vous inspirent pas mais, çà reste votre exo.

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

  13. #13
    Nouveau Candidat au Club
    Femme Profil pro
    étudiante
    Inscrit en
    Janvier 2015
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : étudiante
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2015
    Messages : 9
    Points : 1
    Points
    1
    Par défaut
    Merci mais ça ne m'aide pas du tout, je dois rendre demain un pendu qui fonctionne avec interface graphique bah tant pis ..

  14. #14
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 283
    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 283
    Points : 36 770
    Points
    36 770
    Par défaut
    Citation Envoyé par jrose15 Voir le message
    Merci mais ça ne m'aide pas du tout, je dois rendre demain un pendu qui fonctionne avec interface graphique bah tant pis ..
    Désolé mais quand j'écris:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
        if partie_en_cours :
            # si lettre dans mot_choisi:
            #     - construire un nouveau mot partiel
            #     - actualiser mot partiel.
            #     quid de lettre déjà dans mot_partiel
            #     est-ce qu'on a terminé la partie?
            # sinon:
            #     traiter echec.
    En Python çà se traduit assez simplement par:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
            if lettre in mot_choisi:
                mot_partiel = nouveau_mot_partiel(mot_choisi, mot_partiel, lettre)
                afficher_mot(mot_partiel)
                partie_en_cours = '-' in mot_partiel
            else:
                nb_echecs += 1
                if nb_echecs == 8:
                    partie_en_cours = False
                    afficher_mot(mot_choisi)
    Et vous voyez que les commentaires qui décrivent l'algo. ont été remplacés par presque autant de lignes de code.
    La plupart des lignes de votre code ont été poussées dans la fonction "nouveau_mot_partiel" (que vous devez écrire et tester).

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

  15. #15
    Nouveau Candidat au Club
    Femme Profil pro
    étudiante
    Inscrit en
    Janvier 2015
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : étudiante
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2015
    Messages : 9
    Points : 1
    Points
    1
    Par défaut Essais
    J'ai essayé ce que vous m'avez dit de faire et en vain.. toujours le même soucis .. tant pis

Discussions similaires

  1. Bomberman tkinter python
    Par Exoplanet dans le forum Tkinter
    Réponses: 18
    Dernier message: 11/05/2014, 07h51
  2. jeu du pendu avec python
    Par TermS dans le forum Général Python
    Réponses: 3
    Dernier message: 08/05/2013, 18h14
  3. [Tkinter] Python 2.6 - Quel outil utiliser en remplacement du print()
    Par sir_nebuchadnezzar dans le forum Général Python
    Réponses: 16
    Dernier message: 20/11/2012, 09h51
  4. Webbrowser Tkinter Python
    Par Nifaste dans le forum Tkinter
    Réponses: 3
    Dernier message: 03/01/2010, 10h20
  5. [Tkinter] Python sous Linux
    Par PMdomine dans le forum Tkinter
    Réponses: 7
    Dernier message: 06/03/2006, 20h56

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