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

Programmation multimédia/Jeux Python Discussion :

Problème tour de jeu avec radio boutons


Sujet :

Programmation multimédia/Jeux Python

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2017
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Orne (Basse Normandie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2017
    Messages : 11
    Points : 7
    Points
    7
    Par défaut Problème tour de jeu avec radio boutons
    Bonsoir,

    J'essaye de programmer le jeu des 20 batons (ford boyard, il y a 20 batons, chaque jouer prends entre 1 et 3 batons, celui qui prends le dernier a perdu), avec un joueur contre l'ordi, je souhaite que mon joueur définisse le nombre de batons qu'il prends par des radios boutons (de 1 à 3).
    Tout d'abord J=nbre de batons que prends le joueur, I=nbre batons que prends IA et B=le nbre de batons restant
    Donc au premier tour mon joueur sélectionne 1 des 3 boutons, J prends bien la valeur le premier tour se passe sauf que J a maintenant la même valeur a chaque fois que le joueur doit choisir, il faudrait que j'arrive à faire en sorte de redemander au joueur de sélectionner un radio bouton, j'ai utiliser la fonction deselect() en éque le programme aller demander de choisir a nouveau, mais J prends juste la valeur 0...

    En faites je voudrai que le programme demande au joueur de sélectionner a nouveau un radioboutons lorsque c'est son tour et l'empecher de prendre toujours la première valeur.

    il y a 3 fois partie très ressemblante dépendant chacune d'un condition, pour faire en sorte que l'IA soit intelligente et ne pioche pas au hasard
    Merci de votre réponse
    J'ai lu le tutoriel pour poster sur le forum mais je ne comprends pas comment faire pour le code source malgré la prévisualisation du message, j ai mis le fichier en piece jointe, si quelqu'un pouvez me dire comment faire je reposterai le code source merci
    "
    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
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    from tkinter import *
    import random
     
    fenetre=Tk()
    fenetre['bg']='white'
    fenetre.title('choix')
     
     
    cn=Frame(fenetre,padx=50,pady=50, borderwidth=2, relief=GROOVE)
    cn.grid()
     
     
    nombre=StringVar()
    choix1=Radiobutton(cn,text='1',variable=nombre, value="1")
    choix1.grid(row=1,column=1)
    choix2=Radiobutton(cn,text='2',variable=nombre ,value="2")
    choix2.grid(row=1,column=2)
    choix3=Radiobutton(cn,text='3',variable=nombre,value="3")
    choix3.grid(row=1,column=3)
     
     
    B=20
    I=0
    J=0
     
    def Jeu2():
     
        global B
        global I
        global J
        if B!=1:
            J=nombre.get()
            J=int(J)#int() : permet de modifier une variable en entier.
            print("Vous avez pris",J,"batons.")
            B=B-J
            print("Il reste",B,"batons.")
            print("Tour terminé,à l'IA de jouer.")
            if J==1:
                if B>1:#explication au procahin
                    I=2
                    print("L'IA a pris",I,"batons.")
                    B=B-I
                    print("Il reste",B,"batons.")#rawinput pour creer pause a chaque tour, cliquer sur vlaider continue la fonction
                    while B!=1:#enlever while mettre sous forme variable avec decompte tour
                        #J=choix1.deselect() remet a 0 le J
                        J=nombre.get()
                        J=int(J)
                        print("Vous avez pris",J,"batons.")
                        B=B-J
                        print("Il reste",B,"batons.")
                        if B<=1:
                            print("Vous avez gagné.")
                            break
                        else:
                            print("Tour terminé,à l'IA de jouer.")
                            if B==8:#faille du programme le rendant battable--->corrigé
                                I=3#
                                print("L'IA a pris",I,"batons.")#
                                B=B-I#
                                print("Il reste",B,"batons.")#     
                            if B>6:#6 a la place de 4 car sinon lance la condition d au dessOus et celle ci
                                I=4-J
                                print("L'IA a pris",I,"baton(s).")
                                B=B-I
                                print("Il reste",B,"batons.")        
                            elif B<=4:
                                 if B==4:
                                     I=3
                                     print("L'IA a pris",I,"batons.")
                                     B=B-I
                                     print("Il reste",B,"baton.")
                                     print("Vous avez perdu.")
                                     break
                                 if B==3:
                                     I=2
                                     print("L'IA a pris",I,"batons.")
                                     B=B-I
                                     print("Il reste",B,"baton.")
                                     print("Vous avez perdu")
                                     break
                                 if B==2:
                                     I=1
                                     print("L'IA a pris",I,"baton.")
                                     B=B-I
                                     print("Il reste",B,"baton.")
                                     print("Vous avez perdu")
                                     breakif 
            if J==2:
                if B>1:#explciation au prochain
                    I=1
                    print("L'IA a pris",I,"batons.")
                    B=B-I
                    print("Il reste",B,"batons.")
                    while B!=1:
                        J=nombre.get()
                        J=int(J)
                        print("Vous avez pris",J,"batons.")
                        B=B-J
                        print("Il reste",B,"batons.")
                        if B<=1:
                            print("Vous avez gagné.")
                            break
                        else:
                            print("Tour terminé,à l'IA de jouer.")
                            if B==8:#faille du programme le rendant battable--->corrigé
                                I=3#
                                print("L'IA a pris",I,"batons.")#
                                B=B-I#
                                print("Il reste",B,"batons.")#
                            if B>6:
                                I=4-J
                                print("L'IA a pris",I,"baton(s).")
                                B=B-I
                                print("Il reste",B,"batons.")
                            elif B<=4:
                                if B==4:
                                    I=3
                                    print("L'IA a pris",I,"batons.")
                                    B=B-I
                                    print("Il reste",B,"baton.")
                                    print("Vous avez perdu.")
                                    break
                                if B==2:
                                    I=1
                                    print("L'IA a pris",I,"batons.")
                                    B=B-I
                                    print("Il reste",B,"baton")
                                    print("Vous avez perdu")
                                    break
                                if B==3:
                                    I=2
                                    print("L'IA a pris",I,"batons.")
                                    B=B-I
                                    print("Il reste",B,"baton")
                                    print("Vous avez perdu")                          
                                    break
     
            if J==3:
                if B>1:#corrige le bug,qui avec cette combinaison 2,3,2,3,3, faisait continuer le programme en dessous de 1 car le precedent J est egale a 3 ce qui l'active, bug pas compris mais resolu
                    I=3
                    print("L'IA a pris",I,"batons.")
                    B=B-I
                    print("Il reste",B,"batons.")
                    while B!=1:
                        J=nombre.get()
                        J=int(J)
                        print("Vous avez pris",J,"batons.")
                        B=B-J
                        print("Il reste",B,"batons.")
                        if B<=1:
                            print("Vous avez gagné.")
                            break
                        else:
                            print("Tour terminé,à l'IA de jouer.")
                            if B==8:#faille du programme le rendant battable--->corrigé
                                I=3#
                                print("L'IA a pris",I,"batons.")#
                                B=B-I#
                                print("Il reste",B,"batons.")#
                            if B>6:
                                I=4-J
                                print("L'IA a pris",I,"baton(s).")
                                B=B-I
                                print("Il reste",B,"batons.")
                            elif B<=4:
                                if B==4:
                                    I=3
                                    print("L'IA a pris",I,"batons.")
                                    B=B-I
                                    print("Il reste",B,"baton.")
                                    print("Vous avez perdu.")
                                    break
                                if B==3:
                                    I=2
                                    print("L'IA a pris",I,"batons.")
                                    B=B-I
                                    print("Il reste",B,"baton.")
                                    print("Vous avez perdu.")
                                    break
                                if B==2:
                                    I=1
                                    print("L'IA a pris",I,"baton.")
                                    B=B-I
                                    print("Il reste",B,"baton.")
                                    print("Vous avez perdu")
                                    break
     
     
    vali=Button(cn,text='valider',command=Jeu2)
    vali.grid(row=2,column=2,padx=5,pady=5)
     
    fenetre.mainloop()
    "
    Fichiers attachés Fichiers attachés

  2. #2
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2017
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Orne (Basse Normandie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2017
    Messages : 11
    Points : 7
    Points
    7
    Par défaut
    Je suis désolé pour la présentation mais je comprends vraiment pas comment faire

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

    Citation Envoyé par Equinox612 Voir le message
    En faites je voudrai que le programme demande au joueur de sélectionner a nouveau un radioboutons lorsque c'est son tour et l'empecher de prendre toujours la première valeur.
    La fonction Jeu2 est particulière puisqu'elle est appelée lorsque l'utilisateur appuie sur un Button et lorsqu'elle s'exécute, l'IHM est gelé: les différents nombre.get() retourneront toujours la même valeur simplement parce qu'une éventuelle saisie ne sera prise en compte qu'après s'être terminée et avoir "rendu la main" à l'interface graphique (qui pourra faire à ce moment là les éventuelles mises à jour).
    La mauvaise nouvelle est que vous ne pouvez pas utiliser une interface graphique comme une interface console. Les bonnes nouvelles sont que vous avez des tas de choses à apprendre pour fabriquer un programme qui fonctionne dans ces conditions et pleins de tutos. à votre disposition pour comprendre comment çà marche.

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

Discussions similaires

  1. Probleme avec radio bouton et entry ?
    Par xunil2003 dans le forum Tkinter
    Réponses: 4
    Dernier message: 18/08/2015, 23h26
  2. problème avec radio bouton
    Par benstile dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 10/02/2010, 13h46
  3. Problème avec un bouton radio obligatoire
    Par flab78 dans le forum Langage
    Réponses: 3
    Dernier message: 24/06/2008, 16h42
  4. Problème avec un bouton radio
    Par bonnet85 dans le forum Langage
    Réponses: 1
    Dernier message: 10/02/2008, 14h03
  5. Problème avec des Boutons Radio
    Par Spinoza23 dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 01/02/2007, 14h59

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