Partage
  • Partager sur Facebook
  • Partager sur Twitter

[Python]Création d'un jeu Risk©

    18 mars 2007 à 18:13:35

    Voilà, avec cat_loic et deux autres personnes, on essaye de programmer un Risk© en python dans le cadre des PPE. Pour l'instant on est bloqués car on arrive pas à afficher un bouton pour lancer un dés et le canevas pour afficher l'image du dés !

    Voilà le programme :


    #******************************************************#
    #                                                      #
    #                   Projet PPE                         #
    #               Programmation Risk©                    #
    #                                                      #
    #******************************************************#

    #On importe tout ce qu'il faut
    from Tkinter import *
    from random import randint
    # -*- coding: utf-8 -*-

    #On crée la fenètre principale
    class Application(Frame):
            def __init__(self, boss=None,width=1280,height=1024):
                    Frame.__init__(self)#On récupère ce qu'on peut de la classe prédéfinie Frame
                    self.master.title("Risk")#On met un titre
                    mBar=MenuBar(self)#On appelle le menu
                    mBar.pack()#On bloque le menu dans la fenètre
                    canevas_du_monde=Canevas_carte_du_monde()#On appelle la carte du monde
                    canevas_du_monde.pack()#On bloque la carte du monde
                    canevas_des=Canevas_des_des()#On appelle le canevas d'un de ( et son bouton )
                    canevas_des.pack()#On bloque le canevas du de ( et son bouton )


    #On crée les menus
    class MenuBar(Frame):
            def __init__(self, boss=None):
                    Frame.__init__(self, borderwidth=2)
                   
                    # Menu < Options > #
                    fileMenu = Menubutton(self, text="Options")
                    fileMenu.pack(side=LEFT)
                   
                    #Morceau déroulant du menu
                    me1 = Menu(fileMenu)
                    me1.add_command(label="Quitter", underline=0, command=boss.quit)
                   
                    #Intégration du menu
                    fileMenu.configure(menu=me1)
                   
    #On crée le Canevas pour les dés
    class Canevas_des_des(Canvas):
            def __init__(self):
                    Canvas.__init__(self,width=100,height=100,bg='white')
                    self.pack(side=BOTTOM)
                    self.bouton_jouer=Button(Application,text="Jouer",command=(lambda:self.lancer()))
                    self.bouton_jouer.pack(side=BOTTOM)

            def lancer(self):
                    global image_des
                    n = randint(1,6)
                    image_des = PhotoImage(file =str(n)+'.gif')
                    canevas_des_des.create_image(50,50, image = image_des)

    class Canevas_carte_du_monde(Canvas):
            def __init__(self):
                    Canvas.__init__(self,width=1260,height=738,bg='white')#On crée le canevas(avec la taille et la couleur)
                    self.pack(side=TOP)#On le bloque sur la fenetre
                    self.dessin_carte()#On lance la fonction de dessin de la carte
           
            def dessin_carte(self):
                    self.image=PhotoImage(file='carte.gif')#On dit que l'image correspond à la carte
                    self.create_image(630,369,image=self.image)#On positionne l'image dans le canevas

    #------- Programme Principal -------#

    if __name__ == '__main__':
            app=Application()
            app.mainloop()
            app.destroy


    Déoslé, les commentaires ne sont pas complets !! :euh:
    Donc on aimerais bien savoir si quelqu'un veux nous aider ( 'fin à trouver notres(nos) erreur(s) , pas à nous programmer le jeu !!! ).
    • Partager sur Facebook
    • Partager sur Twitter
      18 mars 2007 à 19:22:40

      Donc le problème doit venir de ce bout là :
      #On crée le Canevas pour les dés
      class Canevas_des_des(Canvas):
              def __init__(self):
                      Canvas.__init__(self,width=100,height=100,bg='white')
                      self.pack(side=BOTTOM)
                      self.bouton_jouer=Button(Application,text="Jouer",command=(lambda:self.lancer()))
                      self.bouton_jouer.pack(side=BOTTOM)

              def lancer(self):
                      global image_des
                      n = randint(1,6)
                      image_des = PhotoImage(file =str(n)+'.gif')
                      canevas_des_des.create_image(50,50, image = image_des)


      Petite modification :
      #On crée le Canevas pour les dés
      class Canevas_des_des(Canvas):
          def __init__(self):
              Canvas.__init__(self,width=100,height=100,bg='white')
                  self.pack(side=BOTTOM)
                  self.bouton_jouer=Button(Application,text="Jouer",command=(lambda:self.lancer()))
                  self.bouton_jouer.pack(side=BOTTOM)

          def lancer(self):
              global image_des
              n = randint(1,6)
              image_des = PhotoImage(file =str(n)+'.gif')
              canevas_des_des.create_image(50,50, image = image_des)

      Je pense pas que ça va changer grand chose, mais essais quand même, c'est déjà plus propre à mes yeux :-°
      • Partager sur Facebook
      • Partager sur Twitter
        18 mars 2007 à 20:02:14

        Petite question, quesque qu'un ppe?
        • Partager sur Facebook
        • Partager sur Twitter
        Anonyme
          18 mars 2007 à 20:04:17

          self.bouton_jouer=Button(Application,text="Jouer",command=(lambda:self.lancer()))
                      self.bouton_jouer.pack(side=BOTTOM)


          La lambda n'est pas nécessaire. Vous pouvez écrire directement command=self.lancer : ça passe ainsi le nom de la fonction, c'est suffisant.
          • Partager sur Facebook
          • Partager sur Twitter
            19 mars 2007 à 19:16:42

            Merci bien pour vos réponses !!
            • Partager sur Facebook
            • Partager sur Twitter
              19 mars 2007 à 19:47:06

              #******************************************************#
              #                                                      #
              #                   Projet PPE                         #
              #               Programmation Risk©                    #
              #                                                      #
              #******************************************************#

              #On importe tout ce qu'il faut
              from Tkinter import *
              from random import randint
              # -*- coding: utf-8 -*-

              #On crée la fenètre principale
              class Application(Frame):
                      def __init__(self, boss=None,width=1280,height=1024):
                              Frame.__init__(self)#On récupère ce qu'on peut de la classe prédéfinie Frame
                              self.master.title("Risk")#On met un titre
                              mBar=MenuBar(self)#On appelle le menu
                              mBar.pack()#On bloque le menu dans la fenètre
                              canevas_du_monde=Canevas_carte_du_monde()#On appelle la carte du monde
                              canevas_du_monde.pack()#On bloque la carte du monde
                              canevas_des=Canevas_des_des()#On appelle le canevas d'un de ( et son bouton )
                              canevas_des.pack()#On bloque le canevas du de ( et son bouton )


              #On crée les menus
              class MenuBar(Frame):
                      def __init__(self, boss=None):
                              Frame.__init__(self, borderwidth=2)
                             
                              # Menu < Options > #
                              fileMenu = Menubutton(self, text="Options")
                              fileMenu.pack(side=LEFT)
                             
                              #Morceau déroulant du menu
                              me1 = Menu(fileMenu)
                              me1.add_command(label="Quitter", underline=0, command=boss.quit)
                             
                              #Intégration du menu
                              fileMenu.configure(menu=me1)
                             
              #On crée le Canevas pour les dés
              class Canevas_des_des(Canvas):
                      def __init__(self):
                              Canvas.__init__(self,width=100,height=100,bg='white')
                              self.pack(side=BOTTOM)
                              self.bouton_jouer=Button(Application,text="Jouer",command=self.lancer)
                              self.bouton_jouer.pack(side=BOTTOM)

                      def lancer(self):
                              global image_des
                              n = randint(1,6)
                              image_des = PhotoImage(file =str(n)+'.gif')
                              canevas_des_des.create_image(50,50, image = image_des)

              class Canevas_carte_du_monde(Canvas):
                      def __init__(self):
                              Canvas.__init__(self,width=1260,height=738,bg='white')#On crée le canevas(avec la taille et la couleur)
                              self.pack(side=TOP)#On le bloque sur la fenetre
                              self.dessin_carte()#On lance la fonction de dessin de la carte
                     
                      def dessin_carte(self):
                              self.image=PhotoImage(file='carte.gif')#On dit que l'image correspond à la carte
                              self.create_image(630,369,image=self.image)#On positionne l'image dans le canevas

              #------- Programme Principal -------#

              if __name__ == '__main__':
                      app=Application()
                      app.mainloop()
                      app.destroy

              Voilà donc pour le code final :)
              Merci également de vos réponses, Thomas01 si tu penses que le sujet est résolu :indique le avec le bouton >_<

              Draknight : le PPE est un Projet Personnel Encadré, une sorte de <acronym title="Travail Personnel Encadré">TPE</acronym> ( désolé pour le rapprochement, je suis pas encore en terminal ). Le PPE se fait en terminal, ici il compte pour l'épreuve anticipé du BAC Série S SI...
              • Partager sur Facebook
              • Partager sur Twitter
                20 mars 2007 à 21:52:44

                Ok tu me préviens que ton jeux est fais pour voir ce que cela donne.
                • Partager sur Facebook
                • Partager sur Twitter
                  21 mars 2007 à 14:32:57

                  Ben je pensais poser mes questions dans ce topic-ci pour ne pas polluer le forums avec plein de topics alors que je pourrais tout centraliser !! Enfin, j'attends l'avis d'un modératuer ...


                  Voilà, j'ai décider d'essayer de tout faire avec des frame ( et des canevas pour les images ), j'ai pensé que ça pourrait être plus simple. Voilà le code

                  #******************************************************#
                  #                                                      #
                  #                   Projet PPE                         #
                  #               Programmation Risk©                    #
                  #                                                      #
                  #******************************************************#

                  #On importe tout ce qu'il faut
                  from Tkinter import *
                  from random import randint
                  # -*- coding: utf-8 -*-


                  #On crée la fenètre principale
                  class Application(Frame):
                          def __init__(self, boss=None):
                                  Frame.__init__(self)#On récupère ce qu'on peut de la classe prédéfinie Frame
                                  self.master.title("Risk")#On met un titre
                                  self.mBar=MenuBar(self)#On appelle le menu
                                  self.mBar.pack()#On bloque le menu dans la fenètre
                                  self.canevas_du_monde=Canevas_carte_du_monde()#On appelle la carte du monde
                                  self.canevas_du_monde.pack()#On bloque la carte du monde
                                  self.frame_des_des=Frame_des_des()
                                  self.frame_des_des.pack()

                  #On crée les menus
                  class MenuBar(Frame):
                          def __init__(self, boss=None):
                                  Frame.__init__(self, borderwidth=2)               
                                  # Menu < Options > #
                                  fileMenu = Menubutton(self, text="Options")
                                  fileMenu.pack(side=LEFT)               
                                  #Morceau déroulant du menu
                                  me1 = Menu(fileMenu)
                                  me1.add_command(label="Quitter", underline=0, command=boss.quit)               
                                  #Intégration du menu
                                  fileMenu.configure(menu=me1)
                                 
                  #On crée la Frame pour les dés
                  class Frame_des_des(Frame):
                          def __init__(self):
                                  Frame.__init__(self,width=400,height=200,bg='ivory')
                                  self.pack(side=BOTTOM)
                                  self.bouton=Button(self,text="Jouer",command=self.lancer)
                                  self.bouton.pack(side=BOTTOM)

                          def lancer(self):
                                  global image_des
                                  n = randint(1,6)
                                  self.image_des = PhotoImage(file =str(n)+'.gif')
                                  self.frame_des_des.create_image(50,50, image = image_des)

                  class Canevas_carte_du_monde(Frame):
                          def __init__(self):
                                  Frame.__init__(self,bg='white')
                                  self.pack(side=TOP)
                                  self.dessin_carte()
                         
                          def dessin_carte(self):
                                  self.can=Canvas(self, width=1200,height=702)
                                  self.can.pack()
                                  self.can.image=PhotoImage(file='carte.gif')
                                  self.can.create_image(600,351,image=self.can.image)

                  #------- Programme Principal -------#

                  if __name__ == '__main__':
                          app=Application()
                          app.mainloop()
                          app.destroy


                  Si les pros du python peuvent me conseiller ce n'est pas de refus !!!
                  • Partager sur Facebook
                  • Partager sur Twitter

                  [Python]Création d'un jeu Risk©

                  × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                  × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                  • Editeur
                  • Markdown