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 :

J'ai besoin d'aide sur mon mastermind


Sujet :

Programmation multimédia/Jeux Python

  1. #1
    Nouveau Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2015
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 27
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2015
    Messages : 2
    Points : 1
    Points
    1
    Par défaut J'ai besoin d'aide sur mon mastermind
    Bonjour, j'ai un code mastermind pour mon projet d'ISN, qui n'a pas été réalisez par moi, et je dois y intégrer une interface graphique avec tkinter. Seulement je ne vois pas comment faire, j'aimerais que vous me donnez conseil (le plus vite possible s'il vous plait)

    Voilà le code, avec des débuts de tkinter

    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
    193
    194
    195
    196
    from random import *
    import sys
    from tkinter import *
     
    liste_couleurs=["bleu","violet","jaune","vert","orange","marron","rose","rouge"]
     
    def UnJoueur():
        nb_couleurs_bien_placees = 0
        nb_couleurs_mal_placees = 0
        prop=[]
        essai_max=10
        essai=1
        liste_couleurs=["bleu","violet","jaune","vert","orange","marron","rose","rouge"]
        sol=[choice(liste_couleurs),choice(liste_couleurs),choice(liste_couleurs),choice(liste_couleurs)]
        print(sol)
        print("Vous avez",essai_max,"essais")
        while prop!=sol:
            print("C'est votre essai n°",essai)
            print("Vous avez le choix entre :",liste_couleurs)
            print("La combinaison possède 4 emplacements mais vous pouvez trouver plusieurs fois la même couleur")
            prop=[input(),input(),input(),input()]
            if(prop==sol):
                print("Bravo vous avez trouvé la combinaison!")
                retry()
            elif(prop!=sol):
                print("Essai encore rien n'est perdu")
                for i in range(0,len(prop)):
                    if prop[i] == sol[i]:
                        nb_couleurs_bien_placees+=1
                for i in range(0,len(prop)):
                    if prop[i] in sol:
                        if prop[i] != sol[i]:
                            nb_couleurs_mal_placees+=1
                print("Tu as donné la combinaison : ",prop, "et tu as,",nb_couleurs_bien_placees,"couleurs bien placées ainsi que",nb_couleurs_mal_placees,"couleurs mal placées")
            nb_couleurs_bien_placees = 0
            nb_couleurs_mal_placees = 0
            essai+=1
            if essai>essai_max and prop != sol :
                print("Désolé, vous avez utilisé vos",essai_max,"essais en vain.")
                print("J'avais choisi les couleurs",sol,".")
                retry()
     
    def DeuxJoueurs():
        nb_couleurs_bien_placees = 0
        nb_couleurs_mal_placees = 0
        prop=[]
        essai_max=10
        essai=1
        liste_couleurs=["bleu","violet","jaune","vert","orange","marron","rose","rouge"]
        print("Insérez le code que vous voulez faire deviner")
        sol=[input("Couleur 1 :"),input("Couleur 2 :"),input("Couleur 3 :"),input("Couleur 4 :")]
        print("Vous avez",essai_max,"essais")
        while prop!=sol:
            print("C'est votre essai n°",essai)
            print("Vous avez le choix entre :",liste_couleurs)
            prop=[input(),input(),input(),input()]
            if(prop==sol):
                print("Bravo vous avez trouvez la combinaison!")
                retry()
            elif(prop!=sol):
                print("Essai encore rien n'est perdu")
                for i in range(0,len(prop)):
                    if prop[i] == sol[i]:
                        nb_couleurs_bien_placees+=1
                for i in range(0,len(prop)):
                    if prop[i] in sol:
                        if prop[i] != sol[i]:
                            nb_couleurs_mal_placees+=1
                print("Tu as donné la combinaison : ",prop, "et tu as,",nb_couleurs_bien_placees,"couleurs bien placées ainsi que",nb_couleurs_mal_placees,"couleurs mal placées")
            nb_couleurs_bien_placees = 0
            nb_couleurs_mal_placees = 0
            essai+=1
            if essai>essai_max and prop != sol :
                print("Désolé, vous avez utilisé vos",essai_max,"essais en vain.")
                print("J'avais choisi les couleurs",sol,".")
                retry()
     
    def DeuxJoueursetIA():
        nb_couleurs_bien_placees = 0
        nb_couleurs_mal_placees = 0
        prop=[]
        propbis=[]
        essai_max=10
        essai=1
        essaibis=1
        liste_couleurs=["bleu","violet","jaune","vert","orange","marron","rose","rouge"]
        sol=[choice(liste_couleurs),choice(liste_couleurs),choice(liste_couleurs),choice(liste_couleurs)]
        print(sol)
        print("Vous avez",essai_max,"essais chacun")
        while prop or propbis!=sol:
            print("C'est votre essai n°",essai)
            print("Vous avez le choix entre :",liste_couleurs)
            print("Choisissez votre combinaison Joueur A:")
            prop=[input(),input(),input(),input()]
            if(prop==sol):
                print("Bravo Joueur A vous avez trouvez la combinaison!")
                retry()
            elif(prop!=sol):
                print("Tu pourras réessayer après ton ami.")
                for i in range(0,len(prop)):
                    if prop[i] == sol[i]:
                        nb_couleurs_bien_placees+=1
                for i in range(0,len(prop)):
                    if prop[i] in sol:
                        if prop[i] != sol[i]:
                            nb_couleurs_mal_placees+=1
                print("Tu as donné la combinaison : ",prop, "et tu as,",nb_couleurs_bien_placees,"couleurs bien placées ainsi que",nb_couleurs_mal_placees,"couleurs mal placées")
                nb_couleurs_bien_placees = 0
                nb_couleurs_mal_placees = 0
                essai+=1
                print("C'est votre essai n°",essaibis)
                print("Vous avez le choix entre :",liste_couleurs)
                print("Choisissez votre combinaison Joueur B:")
            propbis=[input(),input(),input(),input()]
            if(propbis==sol):
                print("Bravo Joueur B vous avez trouvez la combinaison!")
                retry()
            elif(propbis!=sol):
                print("Tu pourras réessayer après ton ami.")
                for i in range(0,len(prop)):
                    if prop[i] == sol[i]:
                        nb_couleurs_bien_placees+=1
                for i in range(0,len(prop)):
                    if prop[i] in sol:
                        if prop[i] != sol[i]:
                            nb_couleurs_mal_placees+=1
            print("Tu as donné la combinaison : ",propbis, "et tu as,",nb_couleurs_bien_placees,"couleurs bien placées ainsi que",nb_couleurs_mal_placees,"couleurs mal placées")
            nb_couleurs_bien_placees = 0
            nb_couleurs_mal_placees = 0
            essaibis+=1
            if essai and essaibis>essai_max and prop and propbis != sol :
                print("Désolé, vous avez utilisé vos",essai_max,"essais en vain.")
                print("J'avais choisi les couleurs",sol,".")
                retry()
     
    def fin_du_game():
        print("Merci d'avoir joué !")
        sys.exit(0)
     
    def menu():
        mode_jeu=input("Veuillez choisir un mode de jeu existant :")
        if(mode_jeu=="1Joueur"):
            UnJoueur()
        elif(mode_jeu=="2Joueurs"):
            DeuxJoueurs()
        elif(mode_jeu=="2JoueursetIA"):
            DeuxJoueursetIA()
        elif(mode_jeu!=""):
            menu()
     
    def retry():
        retry=input("Voulez-vous rejouer -> Oui/Non?")
        if(retry=="Oui"):
            mode_jeu=input("Choisir mode de jeu")
            if(mode_jeu=="1Joueur"):
                UnJoueur()
            elif(mode_jeu=="2Joueurs"):
                DeuxJoueurs()
            elif(mode_jeu=="2JoueursetIA"):
                DeuxJoueursetIA()
            elif(mode_jeu!=""):
                menu()
        elif(retry=="Non"):
            fin_du_game()
        elif(retry!=""):
            fin_du_game()
     
     
    fenetre = Tk()
     
    Mode_jeu = Label(fenetre, text="Choisissez votre mode de jeu: ")
    Mode_jeu.pack()
     
    premier = Button(fenetre, text="Un joueur", command=UnJoueur)
    premier.pack()
    deuxieme = Button(fenetre, text="Deux joueurs", command=DeuxJoueurs)
    deuxieme.pack()
    troisieme = Button(fenetre, text="Deux joueurs contre l'ordinateur", command=DeuxJoueursetIA)
    troisieme.pack()
     
    fenetre.mainloop()
     
     
     
    mode_jeu=input("Choisir mode de jeu")
    if(mode_jeu=="1Joueur"):
        UnJoueur()
    elif(mode_jeu=="2Joueurs"):
        DeuxJoueurs()
    elif(mode_jeu=="2JoueursetIA"):
        DeuxJoueursetIA()
    elif(mode_jeu!=""):
        menu()
     
    print("Merci d'avoir joué !")
    sys.exit(0)

  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 Jeune fille en aide Voir le message
    Bonjour, j'ai un code mastermind pour mon projet d'ISN, qui n'a pas été réalisez par moi, et je dois y intégrer une interface graphique avec tkinter. Seulement je ne vois pas comment faire, j'aimerais que vous me donnez conseil (le plus vite possible s'il vous plait)
    Après une lecture diagonale du code, ce Mastermind a été réalisé avec une interface mode "console". La séquence des opérations est "séquentielle": çà attend lors "input" et çà dispatche en fonction des réponses.
    Avec un GUI comme tkinter, vous passez en mode évènementiel.
    Et cela change complètement la structure du programme!
    Difficile de partir "directement" de ce qui a été fait pour le modifier. Vous êtes obligé de repenser la structure pour la réaliser avec Tkinter en vous inspirant de ce qui a déjà été fait.

    Dans la pratique, garder ce programme dans un coin et tout reconstruire à partir de zéro sera probablement plus simple qu'essayez de le modifier

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

  3. #3
    Nouveau Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2015
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 27
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2015
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    bonjour, tout d’abord merci de votre réponse.

    Malheureusement je ne pense pas que nous avions le temps de refaire intégralement. Alors si je ne pouvais absolument pas le modifier, qu'est-ce que vous me conseillerez pour quand même construire l'interface graphique de ce code ?

  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
    Salut,

    Citation Envoyé par Jeune fille en aide Voir le message
    Malheureusement je ne pense pas que nous avions le temps de refaire intégralement.
    Il ne s'agit pas de le refaire "intégralement", juste d'en modifier la "structure" pour l'adapter à une interface graphique. Cette "structure", c'est la répartition des séquences d'instructions en fonctions pour changer qui fait et qui appelle quoi. Comme votre script ne fait que 200 lignes, ce n'est pas un boulot si monstrueux.

    Citation Envoyé par Jeune fille en aide Voir le message
    Alors si je ne pouvais absolument pas le modifier, qu'est-ce que vous me conseillerez pour quand même construire l'interface graphique de ce code ?
    Vous avez déjà commencé à modifier le script existant!
    Imaginez un code simple genre saisie de 2 nombres et affichage de leur somme.
    On pourrait écrire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    def get_number(prompt):
          while 1:
                   n = input(prompt):
                   if n and n.isdigit():
                         return int(n)
    def calcul(n, m):
          return n*m
     
    n1 = get_number("nombre 1")
    n2 = get_number("nombre 2")
    r = calcul(n1, n2)
    print ('le resultat est:', r)
    Si vous vouliez construire l'interface graphique de ce truc, vous auriez 2 Entry, un Button qui déclenche la fonction "calcul" et un Label pour afficher le résultat. Dans la pratique, la seule chose qui survivrait au changement d'interface sera la fonction "calcul".
    Si j'avais écrit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    def get_number(prompt):
          while 1:
                   n = input(prompt):
                   if n and n.isdigit():
                         return int(n)
     
    n1 = get_number("nombre 1")
    n2 = get_number("nombre 2")
    print ('le resultat est:', n1 * n2)
    La fonction "calcul" n'existant pas, il faudrait l'inventer (si l'opération était plus compliquée)... i.e. changer de structure pour préserver l'essentiel.

    Un des défis de la programmation est d'arriver séparer cet "essentiel" de l'interface pour éviter d'avoir à tout ré-écrire si on passe d'une interface "Web" à une interface "graphique" ou a une interface "console".

    Le programme que vous avez n'a pas été conçu pour çà: l'essentiel est enfoui avec les interactions utilisateurs. Si vous voulez changer d'interface, ce qui peut/doit être conservé n'a pas été proprement défini par ce qu'on appelle une interface (des fonctions à appeler pour organiser les changements d'état du jeu) i.e. inventer les fonctions "calcul" qui sont enfouies.

    C'est pour çà que le plus simple est de reconstruire en récupérant ce que vous pouvez du code original plutôt que d'essayer d'adapter.

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

Discussions similaires

  1. besoin d'aide sur mon avenir
    Par stili91 dans le forum Etudes
    Réponses: 9
    Dernier message: 27/04/2012, 19h22
  2. Besoin d'aide sur mon CV traduit en anglais. thx
    Par mnemonic78 dans le forum CV
    Réponses: 6
    Dernier message: 27/01/2011, 19h37
  3. Besoin d'aide sur mon projet, s'il vous plait
    Par Marco199 dans le forum Algorithmes et structures de données
    Réponses: 5
    Dernier message: 09/05/2008, 19h26
  4. Besoin d'aide sur mon projet
    Par Jenojen dans le forum Bases de données
    Réponses: 10
    Dernier message: 04/05/2008, 18h33
  5. Besoin d'aide sur comment partir avec mon projet
    Par brutus111 dans le forum Développement 2D, 3D et Jeux
    Réponses: 17
    Dernier message: 01/09/2006, 12h08

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