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 :

projet isn (boucle while)


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Mai 2015
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Mai 2015
    Messages : 4
    Par défaut projet isn (boucle while)
    bonjour, je suis actuellement en classe de terminale S, j'ai un projet a rendre sur python, et j'aurais besoin de quelques petits conseil.
    pour résumer en gros, il s'agit d'un petit "jeux" ou le but est de parier entre 2 équipe et de cumuler un maximum d'argent.
    voici le programme sur lequel j'ai un problème:
    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
    ISN(2).py
     
    # Page d'acceuil du logiciel de paris 
    from tkinter import* # import des fonctions tkinter
    from PIL import Image, ImageTk
    import os
     
     
    def match() :
        c=50          #la variable c qui correspond à l'argent vaut 50
        while c>0  :  # tant que c est positif( tant qu'il y a de l'argent) continuez
            mise = int(entr3.get()) #choix la mise
            p = int(entr1.get()) # choix de la 1ere équipe
            n = int(entr2.get()) # choix de la 2eme équipe
            if case_un.get == 1: # choix de l'équipe gagnante en fonction de la case cocher (voir plus bas)
                w = 1
            else:
                w=2
     
     
                import random                   #importez une liste 
                k = random.randint(1,n+p)       #k est la liste allant de 1 a n+p
                if k<=p:                        # regarde si K est inférieur ou égale
                    a=1                         # si oui a prend la valeur 1
                else:
                    a=2                         #si non a prend la valeur 2
                if a== w:                       # si a est égale a w(équipe choisi comme gagnante)
                    c=c-mise+mise*(1/p+n)       # c prend la valeur de l'argent restant
                    print("vous avez gagnez, votre argent est de : ", c) # affiche l'argent restant
                else:                           #si a différent de w
                    c=c-mise                    #c prend la valeur de l'argent restant                       
                    print("vous avez perdu, votre argent est de : ", c) #affiche l'argent restant
     
     
        print("vous n'avez plus d'argent, la partie est fini ") #affiche la fin du jeu 
     
     
     
     
    def new_window1():
        fen2=Tk()
    def new_window2():
        fen3=Tk()
    # création de la fenetre principal
    fen1=Tk()
     
    # texte de la fenetre 1
    tex1 = Label(fen1, text='Bonjour sur qui voulez vous pariez ?', fg='blue')
    tex1.grid(row=0, column=1, sticky =E )
     
    # création du bouton quitter
    bouton_quitter = Button(fen1, text='Quitter', command = fen1.destroy)
    bouton_quitter.grid(row=0, column= 5)
     
     
     
     
     
    # création et placement des différents Label
    Label(fen1, text = 'sur qui misez vous ? : ').grid(row=4, column=2, sticky =W)
    Label(fen1, text = 'equipe 1 : ').grid(row=1, column=2, sticky =W)
    Label(fen1, text = 'equipe 2 : ').grid(row=2, column=2, sticky =W)
    Label(fen1, text = 'mise : ').grid(row=3, column=2, sticky=W)
    Label(fen1, text = ' Paris : 8 ').grid(row=1, column=0, sticky =W)
    Label(fen1, text = ' Toulouse : 7 ').grid(row=2, column=0, sticky =W)
    Label(fen1, text = ' Lyon: 6 ').grid(row=3, column=0, sticky=W)
    Label(fen1, text = ' Toulon : 5 ').grid(row=4, column=0, sticky =W)
    Label(fen1, text = ' Grenoble : 4 ').grid(row=5, column=0, sticky =W)
    Label(fen1, text = ' Lille : 3 ').grid(row=6, column=0, sticky=W)
    Label(fen1, text = ' Clermont : 2 ').grid(row=7, column=0, sticky =W)
    Label(fen1, text = ' Marseille : 1 ').grid(row=8, column=0, sticky =W)
     
    # création des différents champs d'entrée correspondant aux choix d'équipe et de la mise
    entr1 = Entry(fen1)
    entr2 = Entry(fen1)
    entr3 = Entry(fen1)
    entr1.grid(row=1, column=3, sticky =S)
    entr2.grid(row=2, column=3, sticky =S)
    entr3.grid(row=3, column=3, sticky =S)
     
     
     
    # création des cases à cocher pour choisir l'équipe gagnante
    case_un = IntVar()
    case_deux = IntVar()
     
    case1 = Checkbutton(fen1, text="la première équipe", variable=case_un)
    case2 = Checkbutton(fen1, text="la deuxième équipe", variable=case_deux)
     
    case1.grid(row=4, column=3)
    case2.grid(row=4, column=4)
     
    # création du bouton qui appel la fonction
    bouton_pari2 = Button(fen1, text='lancer le pari', command = match)
    bouton_pari2.grid(row=5, column=2)  
     
     
    fen1.mainloop()

    le programme marche cependant il tourne en boucle sans redemander a chaque fois une nouvelle mise ainsi que les 2 nouvelles équipes, y a-t-il une solution simple à cela ?


    merci de vos futur réponse et j'espère avoir été assez clair

    ps: pour le w =1 qui sert à choisir qu'elle équipe nous mettons gagnante c'est pour voir si le programme fonctionnait nous le changerons après avec un "checkbutton " sur Tkinter
    Images attachées Images attachées  

  2. #2
    Membre émérite
    Homme Profil pro
    Aucune activité
    Inscrit en
    Novembre 2011
    Messages
    505
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Aucune activité

    Informations forums :
    Inscription : Novembre 2011
    Messages : 505
    Par défaut
    Bonjour,
    Avec le bouton "#" en haut à droite de la fenêtre d'édition, on insère du code facilement et proprement.
    Cela permet en premier aux lecteurs de tester le code pour essayer de répondre…
    Cela évite tout simplement au lecteur d'avoir à recopier le texte!
    Clodion

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Mai 2015
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Mai 2015
    Messages : 4
    Par défaut
    Merci du renseignement, j'ai modifier mon message

  4. #4
    Membre émérite
    Homme Profil pro
    Aucune activité
    Inscrit en
    Novembre 2011
    Messages
    505
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Aucune activité

    Informations forums :
    Inscription : Novembre 2011
    Messages : 505
    Par défaut
    Bonjour,
    Je ne puis exécuter votre script (il implique PIL).
    Par contre, il serait sans doutes très bénéfique d'inclure des "print" de manière à suivre, au moins, la valeur de c.

    Clodion

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Mai 2015
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Mai 2015
    Messages : 4
    Par défaut
    bonjour,
    ceci est un oubli de notre part, à la base nous avions une image que ne faisions venir de PIL, mais du coup nous l'avons enlevé et normalement PIL n'intervient plus dans le programme

  6. #6
    Membre émérite
    Homme Profil pro
    Aucune activité
    Inscrit en
    Novembre 2011
    Messages
    505
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Aucune activité

    Informations forums :
    Inscription : Novembre 2011
    Messages : 505
    Par défaut
    Citation Envoyé par blancbec Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
     
    def match() :
        c=50          #la variable c qui correspond à l'argent vaut 50
        while c>0  :  # tant que c est positif( tant qu'il y a de l'argent) continuez
            mise = int(entr3.get()) #choix la mise
            p = int(entr1.get()) # choix de la 1ere équipe
            n = int(entr2.get()) # choix de la 2eme équipe
            if case_un.get == 1: # choix de l'équipe gagnante en fonction de la case cocher (voir plus bas)
                w = 1
            else:
                w=2
    Sur cette boucle, je lis:
    - tant que c>0:
    -- j'enlève ou je rajoute de la valeur à c…

    Mais tant que c est positif, alors je recommence.
    En mettant un "print(c)", vous verrez c'est évident!

    Clodion

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Mai 2015
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Mai 2015
    Messages : 4
    Par défaut
    Citation Envoyé par blancbec Voir le message
    bonjour, je suis actuellement en classe de terminale S, j'ai un projet a rendre sur python, et j'aurais besoin de quelques petits conseil.
    pour résumer en gros, il s'agit d'un petit "jeux" ou le but est de parier entre 2 équipe et de cumuler un maximum d'argent.
    voici le programme sur lequel j'ai un problème:
    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
    ISN(2).py
     
    # Page d'acceuil du logiciel de paris 
    from tkinter import* # import des fonctions tkinter
    from PIL import Image, ImageTk
    import os
     
     
    def match() :
        c=50          #la variable c qui correspond à l'argent vaut 50
        while c>0  :  # tant que c est positif( tant qu'il y a de l'argent) continuez
            mise = int(entr3.get()) #choix la mise
            p = int(entr1.get()) # choix de la 1ere équipe
            n = int(entr2.get()) # choix de la 2eme équipe
            if case_un.get == 1: # choix de l'équipe gagnante en fonction de la case cocher (voir plus bas)
                w = 1
            else:
                w=2
     
     
                import random                   #importez une liste 
                k = random.randint(1,n+p)       #k est la liste allant de 1 a n+p
                if k<=p:                        # regarde si K est inférieur ou égale
                    a=1                         # si oui a prend la valeur 1
                else:
                    a=2                         #si non a prend la valeur 2
                if a== w:                       # si a est égale a w(équipe choisi comme gagnante)
                    c=c-mise+mise*(1/p+n)       # c prend la valeur de l'argent restant
                    print("vous avez gagnez, votre argent est de : ", c) # affiche l'argent restant
                else:                           #si a différent de w
                    c=c-mise                    #c prend la valeur de l'argent restant                       
                    print("vous avez perdu, votre argent est de : ", c) #affiche l'argent restant
     
     
        print("vous n'avez plus d'argent, la partie est fini ") #affiche la fin du jeu
    le print(c) est situé ligne 29 et 32, je ne comprends ou tu voudrais qu'on le mette ?

  8. #8
    Membre éprouvé
    Homme Profil pro
    employé
    Inscrit en
    Mars 2015
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : employé

    Informations forums :
    Inscription : Mars 2015
    Messages : 75
    Par défaut
    Salut,

    Le print(c), tu le mets dans la boucle pour voir ce qu'il fait.

  9. #9
    Membre émérite
    Homme Profil pro
    Aucune activité
    Inscrit en
    Novembre 2011
    Messages
    505
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Aucune activité

    Informations forums :
    Inscription : Novembre 2011
    Messages : 505
    Par défaut
    Citation Envoyé par blancbec Voir le message
    le print(c) est situé ligne 29 et 32, je ne comprends ou tu voudrais qu'on le mette ?
    Bonjour,
    Et? Savez-vous où se situe le problème? Si oui, alors vous avez corrigé. Sinon il faudrait se bouger un peu afin de mettre des "print" pour chercher, cerner, l'endroit (les endroits?) ou il y a un problème.

    Je pense que je n'ai pas été assez clair dans le message précédent.
    En fait je ne sais pas comment l'expliquer autrement…
    Si, peut-être: nulle part vous n’arrêtez votre boucle pour de nouvelles demandes.

    Clodion

Discussions similaires

  1. boucle while trop lente
    Par atouze dans le forum Access
    Réponses: 17
    Dernier message: 15/06/2005, 16h35
  2. Boucle while & read
    Par gibet_b dans le forum Linux
    Réponses: 4
    Dernier message: 29/04/2005, 15h38
  3. boucle while et post incrémentation
    Par tut dans le forum C++
    Réponses: 7
    Dernier message: 10/12/2004, 17h24
  4. [MFC] Dialog dans une boucle while
    Par oxor3 dans le forum MFC
    Réponses: 5
    Dernier message: 23/04/2004, 22h51
  5. [débutant]Documentation? boucle "while"? Session?
    Par o151181 dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 19/01/2004, 15h20

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