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

Tkinter Python Discussion :

Aide : Jeu feuille, cailloux, ciseau.


Sujet :

Tkinter Python

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2008
    Messages : 85
    Points : 48
    Points
    48
    Par défaut Aide : Jeu feuille, cailloux, ciseau.
    Voila sa parait stupide mais j'ai un petit probleme dans mon programme il ne veut pas afficher ma "chaine", si vous m'avez pas compris testez le =)

    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
    from random import randrange 
    from Tkinter import *
     #variable
     
    feuille = 0
    cailloux = 0
    ciseau = 0
     
    feuilleb =0
    caillouxb = 0
    ciseaub = 0
    BOT = 0
     
    pointJ = 0
    pointB = 0
     
     #definiton des fonctions
     
    def choix(element) :
     
    	global feuille, cailloux, ciseau, feuilleb, caillouxb, cieaub, pointJ, pointB, BOT
    ####################
    ##BOT
    	BOT = randrange(1,3)
    	if BOT == 1 :
    		feuilleb += 1
    	elif BOT == 2 :
    		caillouxb += 1
    	elif BOT == 3 :
    		ciseaub += 1
     
    ####################
     
    	if element == 1 : #feuille
    		 feuille += 1
    		 if feuille ==1 and feuilleb ==1 :
    		 	chaine.configure(fenetre, text ='egaliter !')
    		 elif feuille ==1 and caillouxb == 1 :
    			chaine.configure(fenetre, text ='Vous gangez un point =P')
    			pointJ += 1
    		 elif feuille ==1 and ciseaub ==1 :
    			chaine.configure(fenetre, text ='Vous perdez =(')
    			pointB += 1
     
    #####################
     
    	elif element == 2 : #cailloux
    		cailloux += 1
    		if cailloux ==1 and caillouxb ==1 :
    			chaine.configure(fenetre, text ='egaliter !')
    		elif cailloux ==1 and feuilleb ==1 :
    			chaine.configure(fenetre, text ='Vous perdez =(')
    			pointB += 1
    		elif cailloux ==1 and ciseaub ==1 :
    			chaine.configure(fenetre, text ='Vous gagnez un point =P')
    			pointJ += 1
     
    #####################
     
    	elif element == 3 : #ciseau
    		ciseau += 1
    		if ciseau ==1 and ciseaub ==1 :
    			chaine.configure(fenetre, text ='egaliter !')
    		elif ciseau ==1 and feuilleb ==1 :
    			chaine.configure(fenetre, text ='Vous gagnez un point =P')
    			pointJ += 1
    		elif ciseau ==1 and caillouxb ==1 :
    			chaine.configure(fenetre, text ='Vous perdez =(')
    			pointB += 1
    # programe IG affichage
     
    fenetre = Tk()
    texte1 = Label(fenetre, text='Feuille, cailloux, ciseau, 1 2 3 !')
    texte1.pack()
    bouton1 = Button(fenetre, text="Feuille", command = (lambda: choix(1)))
    bouton1.pack()
    bouton2 = Button(fenetre, text="Cailloux", command = (lambda: choix(2)))
    bouton2.pack()
    bouton3 = Button(fenetre, text="Ciseau", command = (lambda: choix(3)))
    bouton3.pack()
    bouton4 = Button(fenetre, text="Quitter", command = fenetre.destroy)
    bouton4.pack()
    chaine = Label(fenetre)
    chaine.pack()
    Est lorce que je clik sur un des boutons l'erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    chaine.configure(fenetre, text ='Vous gangez un point =P')
      File "/usr/lib/python2.5/lib-tk/Tkinter.py", line 1197, in configure
        return self._configure('configure', cnf, kw)
      File "/usr/lib/python2.5/lib-tk/Tkinter.py", line 1188, in _configure
        self.tk.call(_flatten((self._w, cmd)) + self._options(cnf))
    TclError: unknown option "-colormap"

  2. #2
    Membre actif Avatar de Gaillac
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    165
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2008
    Messages : 165
    Points : 209
    Points
    209
    Par défaut
    Pour ton premier problème, avant que tu n'édite:

    feuille = 0
    cailloux = 0
    ciseau = 0


    et tu ne les change jamais ses valeurs.
    Et comme après tu ne modifie ton texte que si elles valent 1, tu n'es pas prêt d'afficher quelque chose...

    Pour ron second problème:

    remplace tout tes
    chaine.configure(fenetre, text ='blabla')
    par des
    chaine.configure(text ='blabla')

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2008
    Messages : 85
    Points : 48
    Points
    48
    Par défaut
    Merci beaucoup c'était sa =)
    juste maintenant encore un petit problème, mais je regarde si je trouve seul au pire je recrirais ;-)

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2008
    Messages : 85
    Points : 48
    Points
    48
    Par défaut
    Bon j'ai reussi a trouver l'erreur mais j'en ai deux nouvelles T.T
    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
    90
    91
    from random import randrange 
    from Tkinter import *
     #variable
     
    feuille = 0
    cailloux = 0
    ciseau = 0
     
    feuilleb =0
    caillouxb = 0
    ciseaub = 0
    BOT = 0
     
    pointJ = 0
    pointB = 0
     
     #definiton des fonctions
     
    def choix(element) :
    	global feuille, cailloux, ciseau, feuilleb, caillouxb, ciseaub, BOT, pointB, pointJ
    ####################
    ##BOT
    	BOT = randrange(1,3)
    	if BOT == 1 :
    		feuilleb += 1
    	elif BOT == 2 :
    		caillouxb += 1
    	elif BOT == 3 :
    		ciseaub += 1
     
    ####################
     
    	if element == 1 : #feuille
    		 feuille += 1
    		 if feuille ==1 and feuilleb ==1 :
    		 	chaine.configure(text ='egaliter !')
    		 elif feuille ==1 and caillouxb == 1 :
    			chaine.configure(text ='Vous gangez un point =P')
    			pointJ += 1
    		 elif feuille ==1 and ciseaub ==1 :
    			chaine.configure(text ='Vous perdez =(')
    			pointB += 1
     
    #####################
     
    	elif element == 2 : #cailloux
    		cailloux += 1
    		if cailloux ==1 and caillouxb ==1 :
    			chaine.configure(text ='egaliter !')
    		elif cailloux ==1 and feuilleb ==1 :
    			chaine.configure(text ='Vous perdez =(')
    			pointB += 1
    		elif cailloux ==1 and ciseaub ==1 :
    			chaine.configure(text ='Vous gagnez un point =P')
    			pointJ += 1
     
    #####################
     
    	elif element == 3 : #ciseau
    		ciseau += 1
    		if ciseau ==1 and ciseaub ==1 :
    			chaine.configure(text ='egaliter !')
    		elif ciseau ==1 and feuilleb ==1 :
    			chaine.configure(text ='Vous gagnez un point =P')
    			pointJ += 1
    		elif ciseau ==1 and caillouxb ==1 :
    			chaine.configure(text ='Vous perdez =(')
    			pointB += 1
    ##################
    	#chaine2.configure(text = "Vos points :" + str(pointJ))
    	#chaine3.configure(text = "point du Bot :" + str(pointB))
     
    # programe IG affichage
     
    fenetre = Tk()
    texte1 = Label(fenetre, text='Feuille, cailloux, ciseau, 1 2 3 !')
    texte1.pack()
    bouton1 = Button(fenetre, text="Feuille", command = (lambda: choix(1)))
    bouton1.pack()
    bouton2 = Button(fenetre, text="Cailloux", command = (lambda: choix(2)))
    bouton2.pack()
    bouton3 = Button(fenetre, text="Ciseau", command = (lambda: choix(3)))
    bouton3.pack()
    bouton4 = Button(fenetre, text="Quitter", command = fenetre.destroy)
    bouton4.pack()
    chaine = Label(fenetre)
    chaine.pack()
    chaine2 = Label(fenetre, text='Vos points :'+ str(pointJ))
    chaine2.pack(side=BOTTOM)
    chaine3 = Label(fenetre, text='Les points du Bot :'+ str(pointB))
    chaine3.pack(side=BOTTOM)
    1er erreur : Les points ne fonctionnent pas il reste toujours a 0
    2eme erreur : le Bot se met a foirer au bout de 2, 3 coups.
    PS : (aucune erreur dans la console)

  5. #5
    Futur Membre du Club
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2008
    Messages
    4
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2008
    Messages : 4
    Points : 5
    Points
    5
    Par défaut
    En fait si tu fais un print en console tu vas te rendre compte que les points se mettent à jour (enfin, je pense, je l'ai pas exécuté pour tester). Seulement tu ne mets jamais le texte de ton interface à jour.

    Pour le second problème, tu ne remets jamais la valeur de tes variables à zéro. Tu peux donc te retrouver avec feuille = 10...

    Sinon je pense qu'une bonne refactorisation du code pourrait être intéressante ^_^

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2008
    Messages : 85
    Points : 48
    Points
    48
    Par défaut
    Citation Envoyé par kujiu Voir le message
    En fait si tu fais un print en console tu vas te rendre compte que les points se mettent à jour (enfin, je pense, je l'ai pas exécuté pour tester). Seulement tu ne mets jamais le texte de ton interface à jour.

    Pour le second problème, tu ne remets jamais la valeur de tes variables à zéro. Tu peux donc te retrouver avec feuille = 10...

    Sinon je pense qu'une bonne refactorisation du code pourrait être intéressante ^_^
    Merci !
    mais qu'es qu'une refactorisation ? =)

    EDIT : je viens de voir ton Edit je test en remettant les valeurs a 0 !

  7. #7
    Membre actif Avatar de Gaillac
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    165
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2008
    Messages : 165
    Points : 209
    Points
    209
    Par défaut
    Citation Envoyé par noquioz Voir le message
    Merci !
    mais qu'es qu'une refactorisation ? =)

    EDIT : je viens de voir ton Edit je test en remettant les valeurs a 0 !
    Un anglicisme.
    Ca ne viens pas de "facteur" mais de "factory".
    C'est une façon polie de dire que ton code n'est pas super structuré.

    Les variables globales sont un bon exemple d'artifices à éviter autant que possible, à mon humble avis.

  8. #8
    Futur Membre du Club
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2008
    Messages
    4
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2008
    Messages : 4
    Points : 5
    Points
    5
    Par défaut
    Ça correspond à revoir la structure du code.

    Par exemple une fonction permettant de comparer le type d'objet serait la bienvenue. Elle renverrait -1 en cas de perte, 0 pour une égalité et 1 pour un gain. Ça permet d'accroître la lisibilité du code. Et n'hésites surtout pas à utiliser les structures disponibles en python. Un dictionnaire permet d'éliminer la majeure partie des if. Quelque chose du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    { "caillou" : { "caillou" : 0, "papier" : -1, "ciseau" : 1],
    "papier" : { "caillou" : 1, "papier" : 0, "ciseau" : -1},
    "ciseau" : { "caillou" : -1, "papier" : 1, "ciseau" : 0}}
    Mais bon, je pense qu'il y'a moyen de faire encore plus propre ^_^

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2008
    Messages : 85
    Points : 48
    Points
    48
    Par défaut
    Oui je sais que mon code c'est un "bordel" pas possible mais je pensais le rendre plus propre après que tous fonctionne =)
    Qul'qu'un n'aurait pas une idée pour ses valeurs qui reste a 0 ?

  10. #10
    Futur Membre du Club
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2008
    Messages
    4
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2008
    Messages : 4
    Points : 5
    Points
    5
    Par défaut
    Tu as commenté les deux lignes chaine2.configure et chaine3.configure.

    Le texte de l'interface ne peut donc pas se mettre à jour, il est alors tout à fait normal que les valeurs restent à zéro. N'hésite pas à utiliser des print sur tes variables pour comprendre ce qui se passe.

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2008
    Messages : 85
    Points : 48
    Points
    48
    Par défaut
    Oui merci enfaite j'ai trouver seul comme sa :
    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
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    from random import randrange 
    from Tkinter import *
     #variable
     
    feuille = 0
    cailloux = 0
    ciseau = 0
     
    feuilleb =0
    caillouxb = 0
    ciseaub = 0
    BOT = 0
     
    pointJ = 0
    pointB = 0
     
     #definiton des fonctions
     
    def choix(element) :
    	global feuille, cailloux, ciseau, feuilleb, caillouxb, ciseaub, BOT, pointJ, pointB
    ####################
    ##BOT
    	BOT = randrange(1,3)
    	if BOT == 1 :
    		feuilleb += 1
    	elif BOT == 2 :
    		caillouxb += 1
    	elif BOT == 3 :
    		ciseaub += 1
     
    ####################
     
    	if element == 1 : #feuille
    		 feuille = 1
    		 if feuille ==1 and feuilleb ==1 :
    		 	chaine.configure(text ='egaliter !')
    			chaine2.configure(text = 'Vos points :' + str(pointJ))
    			chaine3.configure(text = 'point du Bot :' + str(pointB))
    		 elif feuille ==1 and caillouxb == 1 :
    			chaine.configure(text ='Vous gangez un point =P')
    			pointJ += 1
    			chaine2.configure(text = 'Vos points :' + str(pointJ))
    			chaine3.configure(text = 'point du Bot :' + str(pointB))
    		 elif feuille ==1 and ciseaub ==1 :
    			chaine.configure(text ='Vous perdez =(')
    			pointB += 1
    			chaine2.configure(text = 'Vos points :' + str(pointJ))
    			chaine3.configure(text = 'point du Bot :' + str(pointB))
     
    #####################
     
    	elif element == 2 : #cailloux
    		cailloux = 1
    		if cailloux ==1 and caillouxb ==1 :
    			chaine.configure(text ='egaliter !')
    			chaine2.configure(text = 'Vos points :' + str(pointJ))
    			chaine3.configure(text = 'point du Bot :' + str(pointB))
    		elif cailloux ==1 and feuilleb ==1 :
    			chaine.configure(text ='Vous perdez =(')
    			pointB += 1
    			chaine2.configure(text = 'Vos points :' + str(pointJ))
    			chaine3.configure(text = "point du Bot :" + str(pointB))
    		elif cailloux ==1 and ciseaub ==1 :
    			chaine.configure(text ='Vous gagnez un point =P')
    			pointJ += 1
    			chaine2.configure(text = 'Vos points :' + str(pointJ))
    			chaine3.configure(text = 'point du Bot :' + str(pointB))
     
    #####################
     
    	elif element == 3 : #ciseau
    		ciseau = 1
    		if ciseau ==1 and ciseaub ==1 :
    			chaine.configure(text ='egaliter !')
    			chaine2.configure(text = "Vos points :" + str(pointJ))
    			chaine3.configure(text = "point du Bot :" + str(pointB))
    		elif ciseau ==1 and feuilleb ==1 :
    			chaine.configure(text ='Vous gagnez un point =P')
    			pointJ += 1
    			chaine2.configure(text = "Vos points :" + str(pointJ))
    			chaine3.configure(text = "point du Bot :" + str(pointB))
    		elif ciseau ==1 and caillouxb ==1 :
    			chaine.configure(text ='Vous perdez =(')
    			pointB += 1
    			chaine2.configure(text = "Vos points :" + str(pointJ))
    			chaine3.configure(text = "point du Bot :" + str(pointB))
    ##################
    	#chaine2.configure(text = "Vos points :" + str(pointJ))
    	#chaine3.configure(text = "point du Bot :" + str(pointB))
     
    # programe IG affichage
     
    fenetre = Tk()
    texte1 = Label(fenetre, text='Feuille, cailloux, ciseau, 1 2 3 !')
    texte1.pack()
    bouton1 = Button(fenetre, text="Feuille", command = (lambda: choix(1)))
    bouton1.pack()
    bouton2 = Button(fenetre, text="Cailloux", command = (lambda: choix(2)))
    bouton2.pack()
    bouton3 = Button(fenetre, text="Ciseau", command = (lambda: choix(3)))
    bouton3.pack()
    bouton4 = Button(fenetre, text="Quitter", command = fenetre.destroy)
    bouton4.pack()
    chaine = Label(fenetre)
    chaine.pack()
    chaine2 = Label(fenetre, text='Vos points :'+ str(pointJ))
    chaine3 = Label(fenetre, text='Les points du Bot :'+ str(pointB))
    chaine2.pack(side=BOTTOM)
    chaine3.pack(side=BOTTOM)
    fenetre.mainloop()
    Mais sa revient au même ;-)
    Il me reste juste ce bot qui bug au bout d'un moment c'est special quand même.

  12. #12
    Membre actif Avatar de Gaillac
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    165
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2008
    Messages : 165
    Points : 209
    Points
    209
    Par défaut
    y'a tous le code là??
    A quoi il serve tes incréments de feuilleb, papierb et pierreb?
    A cause de ça, à mon sens, seul le premier clic syr chaque bouton est pris en compte, après tu ne rentre plus dans tes if!!

    feuilleb, papierb et pierreb ne sont jamais remis à 0.
    Je pense que tu voulais faire "=1" et pas "+=1"

    De plus, il faudrait que tu réinitialise après chaque tour, ou au début de chaque tour, tes 3 variables à 0.

    Ou alors, beaucoup plus sain, tes 3 variables tu les laisses locale et plus globale, tu les initialise à 0 au début de ta procédure choix, et le problème se règle de lui même.

  13. #13
    Futur Membre du Club
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2008
    Messages
    4
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2008
    Messages : 4
    Points : 5
    Points
    5
    Par défaut
    Je vais donner deux solutions par ce message. Maintenant l'exercice peut être de comprendre pourquoi la seconde fonctionne. Dans les deux cas, j'ai simplifié le code. Je te conseille également de continuer avec ta version à tenter de corriger jusqu'à ce que ça marche.

    J'espère que tu comprendras pourquoi un code simplifié est plus simple à comprendre, à déboguer et à maintenir.

    Première solution proche :

    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
     
    #!/usr/bin/python
    # -*- coding: utf-8 -*-
    from random import randint
    from Tkinter import *
     
    pointJ = 0
    pointB = 0
     
    #definiton des fonctions
     
    def choix(element) :
        global pointJ, pointB
        BOT = randint(1,3)
     
        if BOT == 1: # Le bot a pris papier
            chaineChoixBot.configure(text = "Le bot a pris papier")
            if element ==1: # Clic sur papier
                chaine.configure(text ='égalité !')
            elif element == 3: # Clic sur ciseaux
                chaine.configure(text ='Vous gagnez un point =P')
                pointJ += 1
            else: # Clic sur ciseaux
                 chaine.configure(text ='Vous perdez =(')
                 pointB += 1
     
        elif BOT == 2: # Le bot a pris pierre
            chaineChoixBot.configure(text = "Le bot a pris pierre")
            if element == 2: # Clic sur pierre
                chaine.configure(text ='égalité !')
            elif element == 1: # Clic sur papier
                chaine.configure(text ='Vous gagnez un point =P')
                pointJ += 1
            else: # Clic sur papier
                 chaine.configure(text ='Vous perdez =(')
                 pointB += 1
     
        else: # Le bot a pris ciseaux
            chaineChoixBot.configure(text = "Le bot a pris ciseaux")
            if element ==3: # Clic sur ciseaux
                chaine.configure(text ='égalité !')
            elif element == 2: # Clic sur pierre
                chaine.configure(text ='Vous gagnez un point =P')
                pointJ += 1
            else: # Clic sur pierre
                 chaine.configure(text ='Vous perdez =(')
                 pointB += 1
     
        chainePointJoueur.configure(text = "Vos points :" + str(pointJ))
        chainePointBot.configure(text = "point du Bot :" + str(pointB))
     
    # programe IG affichage
     
    fenetre = Tk()
    texte1 = Label(fenetre, text='Feuille, cailloux, ciseau, 1 2 3 !')
    texte1.pack()
    bouton1 = Button(fenetre, text="Papier", command = (lambda: choix(1)))
    bouton1.pack()
    bouton2 = Button(fenetre, text="Pierre", command = (lambda: choix(2)))
    bouton2.pack()
    bouton3 = Button(fenetre, text="Ciseaux", command = (lambda: choix(3)))
    bouton3.pack()
    bouton4 = Button(fenetre, text="Quitter", command = fenetre.destroy)
    bouton4.pack()
    chaine = Label(fenetre)
    chaine.pack()
    chaineChoixBot = Label(fenetre, text="")
    chainePointJoueur = Label(fenetre, text='Vos points :'+ str(pointJ))
    chainePointBot = Label(fenetre, text='Les points du Bot :'+ str(pointB))
    chainePointJoueur.pack(side=BOTTOM)
    chainePointBot.pack(side=BOTTOM)
    chaineChoixBot.pack(side=BOTTOM)
    fenetre.mainloop()
    Deuxième solution :

    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
     
    #!/usr/bin/python
    # -*- coding: utf-8 -*-
    from random import randint
    from Tkinter import *
     
    pointJ = 0
    pointB = 0
     
    values = { 0: 'Papier', 1: 'Pierre', 2: 'Ciseaux' }
     
    #definiton des fonctions
     
    def choisir(choixJoueur) :
        global pointJ, pointB, values
        choixBot = randint(0,2)
     
        chaineChoixBot.configure(text = "Choix du bot : %s" % values[choixBot])
     
        if choixJoueur == choixBot:
            # Égalité
            chaine.configure(text = "Égalité")
        elif (choixJoueur+1) % 3 == choixBot:
            # Le joueur a gagné
            pointJ += 1
            chaine.configure(text = "Vous avez gagné :-)")
        else:
            # Le bot a gagné
            pointB += 1
            chaine.configure(text = "Vous avez perdu :'(")
     
        chainePointJoueur.configure(text = "Vos points : %d" % pointJ)
        chainePointBot.configure(text = "Les point du Bot : %d" % pointB)
     
    # programe IG affichage
     
    fenetre = Tk()
    texte1 = Label(fenetre, text='Feuille, cailloux, ciseau, 1 2 3 !')
    texte1.pack()
    bouton1 = Button(fenetre, text="Papier", command = (lambda: choisir(0)))
    bouton1.pack()
    bouton2 = Button(fenetre, text="Pierre", command = (lambda: choisir(1)))
    bouton2.pack()
    bouton3 = Button(fenetre, text="Ciseaux", command = (lambda: choisir(2)))
    bouton3.pack()
    bouton4 = Button(fenetre, text="Quitter", command = fenetre.destroy)
    bouton4.pack()
    chaine = Label(fenetre)
    chaine.pack()
    chaineChoixBot = Label(fenetre, text="")
    chainePointJoueur = Label(fenetre, text='Vos points :'+ str(pointJ))
    chainePointBot = Label(fenetre, text='Les points du Bot :'+ str(pointB))
    chainePointJoueur.pack(side=BOTTOM)
    chainePointBot.pack(side=BOTTOM)
    chaineChoixBot.pack(side=BOTTOM)
    fenetre.mainloop()

Discussions similaires

  1. aide jeu en java
    Par pompom8 dans le forum Développement 2D, 3D et Jeux
    Réponses: 0
    Dernier message: 26/02/2010, 16h39
  2. Image, fichier d'aide et feuille MDI
    Par bruce207 dans le forum VB 6 et antérieur
    Réponses: 15
    Dernier message: 15/05/2008, 18h29
  3. Besoin d'aide jeu du morpion
    Par narcis60floyjo dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 28/02/2008, 15h14
  4. Championnat du monde de feuille caillou ciseau
    Par Invité dans le forum La taverne du Club : Humour et divers
    Réponses: 7
    Dernier message: 18/12/2007, 10h53
  5. BESOIN AIDE JEU BASKET
    Par stitch666 dans le forum Flash
    Réponses: 4
    Dernier message: 19/09/2007, 17h14

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