Partage
  • Partager sur Facebook
  • Partager sur Twitter

pendu avec interface graphique wxPython

    11 mars 2011 à 9:26:05

    Bonjour les amis.
    Je commence un stage où le python sera mon langage de dev et j'ai donc commencé par suivre le tuto et j'ai terminé par le TP sur le jeu du pendu. Je suis passé donc à la version interface en utilisant wxPython et je voulais avoir vos critiques.
    Le modèle du jeu est celui de la correction du TP donc c'est plutôt au niveau de la séparation logic et interface graphique que je voudrais les critiques svp. J'ai essayer de suivre le pattern MVC ( model-view-controller) sans utiliser un framework particulier mais je ne sais pas si mon Contrôleur fait vraiment ce qui est demandé. si quelqu'un pouvait critiquer... Merci d'avance.
    voici le lien :lien megaupload

    précisions : version Python:2.7.1. soyez indulgent
    • Partager sur Facebook
    • Partager sur Twitter
    Anonyme
      11 mars 2011 à 10:28:51

      Pour commencer tu devrais déjà mettre ton code sur le forum.

      Citation

      soyez indulgent



      o_O j'y suis toujours

      Tu vas dire que je pinaille un peu, mais pourquoi tu as mis ta variable nombre_de_coup dans ton fichier donnee.py et ne pas avoir initialisé directement self.chances à 8 ?

      Idem pour la variable nomfichier, pourquoi?

      Sinon j'ai pas tout lu et je suis pas un fan de wxpython, donc je réserve ça à d'autres, si ils veulent bien te lire.

      Mais je vois ceci par exemple :

      def choisirMot(self,liste):
      
              #choisit un mot dans la liste des mots
      
              mot=""
       # Quelle est son utilité ?
              try:
       # Comment il pourrait se planter, on parle bien de ta liste existante de mots, non?
                  indice= randrange(0,len(liste))
      
                  mot= liste[indice]
      
                  return mot
      
              except ValueError:
       # ça ne serait pas la bonne exception (IndexError), mais pas utile car tu délimites bien avec len(liste)
                  raise MyError("la liste des mots est vide")
      


      Puis je ne vois pas l'intérêt de cette fonction ci-dessous car tu ne l'appelles jamais

      def getnbCoup(self):
      
              return self.chances
      


      Puis

      def enregistreScores(self,scores,nomfichier):
       # troublant avec ta variable nomfichier de ton fichier donne.py
              """enregistre les score dans le fichier"""
      
              fichier_score= open(nomfichier,"wb")
      
              mon_pickle=pickle.Pickler(fichier_score)
      
              mon_pickle.dump(scores)
      
              fichier_score.close()
      


      Ce qui est dommage dans ton code, c'est de ne pas faire d'héritage comme tu le fais avec wx.Frame, ça aurait été sympa d'hériter de ta classe model

      C'est aussi dommage de gérer les scores et de ne pas le donner à moins que j'ai manqué ça quelquepart.

      Bon je laisse la main aux autres participants :)
      • Partager sur Facebook
      • Partager sur Twitter
        11 mars 2011 à 11:17:55

        merci beaucoup. pour le:
        def choisirMot(self,liste):
        
                #choisit un mot dans la liste des mots
        
                mot=""
         # Quelle est son utilité ?
                try:
         # Comment il pourrait se planter, on parle bien de ta liste existante de mots, non?
                    indice= randrange(0,len(liste))
        
                    mot= liste[indice]
        
                    return mot
        
                except ValueError:
         # ça ne serait pas la bonne exception (IndexError), mais pas utile car tu délimites bien avec len(liste)
                    raise MyError("la liste des mots est vide")
        


        C'était pour essayer de gérer le cas où ma liste de mots serait vide.... le reste je suis assez d'accord avec toi ^^ .
        Pour les scores, ils sont affiché sur l'interface en fonction du nom d'utilisateur fourni...

        Pour la question d'héritage,c'est juste que tous les exemples que j'ai regardé du MVC, aucun ne fait hériter de son model. Pour un soucis de séparation logic/interface je présume ... :euh:
        merci beaucoup en tout cas.

        • Partager sur Facebook
        • Partager sur Twitter

        pendu avec interface graphique wxPython

        × 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