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 :

jeu du pendu


Sujet :

Python

  1. #1
    Membre confirm�
    Homme Profil pro
    Technicien
    Inscrit en
    F�vrier 2010
    Messages
    59
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loz�re (Languedoc Roussillon)

    Informations professionnelles :
    Activit� : Technicien

    Informations forums :
    Inscription : F�vrier 2010
    Messages : 59
    Par d�faut jeu du pendu
    Bonjour,

    J'ai fait un jeu du pendu (c'est dans un tuto). Comme j'ai un niveau basique, j'aimerai bien que quelqu'un corrige les erreurs de codage (le jeu fonctionne) et me dise ce qu'il faudrait modifier pour avoir un code plus efficace. Par exemple, je crois que j'utilise mal la gestion des erreurs, mais il y en a d'autres.

    Merci.
    Fichiers attach�s Fichiers attach�s

  2. #2
    Membre Expert

    Homme Profil pro
    Ing�nieur calcul scientifique
    Inscrit en
    Mars 2013
    Messages
    1 229
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes C�te d'Azur)

    Informations professionnelles :
    Activit� : Ing�nieur calcul scientifique

    Informations forums :
    Inscription : Mars 2013
    Messages : 1 229
    Par d�faut
    Tu as beaucoup trop de variables globales. Tes fonctions ont des effets de bords partout ...

    Par exemple dans la fonction sauvegarder_score(score, joueur) quand tu �cris dico[joueur] le dico il vient d'ou ? De quelque part d'ext�rieur � la fonction... et ta fonction modifie le dico.

    Imagine qu'avec de tels effets de bords je pourrais avoir un comportement comme �a :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    a=7
    une_fonction()
    print(a)    ###  --> affiche 5
    Toutes les variables que tu manipules dans une fonctions tu dois les donner en param�tres. Si tu les modifie, � ce moment tu dois les passer aussi en sortie. Tout ceci devient finalement assez lourd lorsque le nombre de variables que tu manipules dans une fonction grandit. C'est l� qu'est tout l'int�r�t des classes que tu devrais utiliser ici ! C'est la premi�re des choses � faire � mon avis avant toutes autres am�liorations.

  3. #3
    Expert �minent
    Homme Profil pro
    Architecte technique retrait�
    Inscrit en
    Juin 2008
    Messages
    21 770
    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 770
    Par d�faut
    Salut,

    Citation Envoy� par lg_53 Voir le message
    Par exemple dans la fonction sauvegarder_score(score, joueur) quand tu �cris dico[joueur] le dico il vient d'ou ? De quelque part d'ext�rieur � la fonction... et ta fonction modifie le dico.
    Il suffit de lire le code pour trouver d'o� vient dico:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    def sauvegarder_score(score, joueur):
        """enregistre le score du joueur dans donnees.py"""
        data = lire_fichier('donnees.py')
        dico = data["a"]
        #si le joueur existe déjà son score est ajouté au score
        #preceden)t
        try:
            dico[joueur] = int(dico[joueur])+ score
        #sinon le joueur et son score sont enregistré
        except KeyError:
            dico[joueur] = int(score)
        data["a"] = dico
        enregistrer_fichier('donnees.py', data)
    et c�t� variables globales, d�sol� mais il n'y en a pas.

    Mais quand je regarde le code, ce qui me choque c'est le d�coupage entre "pendu.py" et "fonctions.py". Il n'y a pas grand chose dans le script "pendu.py" qui va tout r�cup�rer dans "fonctions.py".
    Pas de d�coupage ou un d�coupage permettant d'avoir dans "pendu.py", tout ce qui concerne la logique du jeu et dans "fonctions.py", les fonctions d'affichage (print...) et de lecture/�criture des donn�es rendrait cela beaucoup plus lisible.
    Pour le reste, mettre les joueurs avec leurs scores dans le m�me fichier que le dictionnaires des mots � trouver. A priori, ce dernier est un fichier qu'on lira seulement alors que les informations "joueurs" sont mises � jour � chaque partie. Il serait plus sage de s�parer les deux: un fichier texte pour les mots � trouver - ce qui permet de les ajouter "� la main"- , un fichier JSON pour joueurs et scores - ce qui permet de voir ce qu'il y a dedans assez simplement - (une table dans une base de donn�es sqlite serait sans doute encore meilleur).

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

Discussions similaires

  1. Code en bourne shell du jeu Le "PENDU"
    Par piment dans le forum Shell et commandes GNU
    R�ponses: 1
    Dernier message: 20/07/2007, 14h17
  2. Jeu Bonhomme pendu
    Par yinyann86 dans le forum Delphi
    R�ponses: 11
    Dernier message: 14/11/2006, 17h03
  3. Le jeu du pendu.
    Par giggs dans le forum C
    R�ponses: 5
    Dernier message: 31/10/2006, 13h40
  4. jeu du pendu
    Par krachik dans le forum Langage
    R�ponses: 5
    Dernier message: 24/10/2006, 12h48
  5. R�ponses: 4
    Dernier message: 24/03/2006, 13h54

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