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 :

Revue de code d'un exercice du Swinnen - E3S1


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de scalpel
    Homme Profil pro
    Gestionnaire de parc micro-informatique
    Inscrit en
    Novembre 2008
    Messages
    157
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Gestionnaire de parc micro-informatique
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2008
    Messages : 157
    Par défaut Revue de code d'un exercice du Swinnen - E3S1
    Bonjour à tous.tes,

    J'ai commencé ce week-end le dernier exercice du "Swinnen" concernant "Tkinter", il s'agit du jeu du serpent.
    Avant de trop m'avancer dans celui-ci, j'aurai besoin d'un avis éclairé.

    Je crée et je déplace les vertèbres du serpent les une après les autres en exécutant la fonction déplace, créant ainsi une boucle à chaque vertèbre.
    Je commence à avoir du mal à dresser la bestiole.
    Ne serait t'il pas plus judicieux de déplacer toutes les vertèbres à partir de la même boucle ?

    Voici une première ébauche (fonctionnelle) avec une boucle par vertèbre :
    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
    # imports
    from tkinter import Tk, Canvas
    from random import randrange
     
    # fonctions
    def deplace(numVertebres=0):    
        'déplace une vertebre du serpent'
        can.coords(vertebres[numVertebres-1], can.coords(vertebres[numVertebres])) # dernière vertebre remplace première
        if direction == 'Up': can.move(vertebres[numVertebres], 0, -20)
        if direction == 'Right': can.move(vertebres[numVertebres], 20, 0)
        if direction == 'Left': can.move(vertebres[numVertebres], -20, 0)
        if direction == 'Down': can.move(vertebres[numVertebres], 0, 20)
     
        can.after(500, deplace, numVertebres) # multiples executions différées
     
    # gestionnaires d'événements
    def toucheDir(event): 
        global direction
        'detection des touches de direction'
        direction = event.keysym
     
    # programme principal
    fen = Tk()
    direction = 'Right' # direction initiale du serpent
     
    # widgets
    can = Canvas(fen, width =200, height =200, bg ='ivory')
    can.pack()
    can.bind('<Key>', toucheDir)
    can.focus_set ()
     
    for i in range(10): # placement aléatoire des pions
            x, y = randrange(40, 180, 40), randrange(40, 180, 40)
            can.create_oval(x, y, x+20, y+20, fill='red')
     
    vertebres = list() # initialisation du serpent
    for i in range(10): 
         vertebres.append(can.create_rectangle(-20, 0, 0, 20, fill='light green'))
    can.itemconfigure(vertebres[4], fill ='dark green')
     
    for i in range(5) : # lance le déplacement du serpent
        deplace(i)
     
    # réceptionnaire d'événements
    fen.mainloop()

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 744
    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 744
    Par défaut
    Citation Envoyé par scalpel Voir le message
    Ne serait t'il pas plus judicieux de déplacer toutes les vertèbres à partir de la même boucle ?
    Pour faire avancer le serpent, le plus simple est de déplacer la dernière vertèbre en première position.
    note: ce qui permet d'allonger le serpent lorsqu'il mange une pomme.

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

  3. #3
    Membre confirmé Avatar de scalpel
    Homme Profil pro
    Gestionnaire de parc micro-informatique
    Inscrit en
    Novembre 2008
    Messages
    157
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Gestionnaire de parc micro-informatique
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2008
    Messages : 157
    Par défaut
    Citation Envoyé par wiztricks Voir le message
    ...Pour faire avancer le serpent, le plus simple est de déplacer la dernière vertèbre en première position...
    Je suis un véritable boulet, tout va être effectivement beaucoup plus simple.

    J'ai du mal à te remercier, tellement je me sent frustré de ne pas y avoir pensé.

    Merci beaucoup

  4. #4
    Membre confirmé Avatar de scalpel
    Homme Profil pro
    Gestionnaire de parc micro-informatique
    Inscrit en
    Novembre 2008
    Messages
    157
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Gestionnaire de parc micro-informatique
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2008
    Messages : 157
    Par défaut
    Je vais suivre le conseil que ma donné wiztricks dans une discutions précédente, "passer à l'exercice suivant".
    Cet exercice est un peu trop compliqué pour le moment, j'y reviendrais plus tard quand je serait mieux "armé" pour l'affronter.

    De plus je suis très impatient de voir ce que l'on peu faire avec les fichiers et je commence à me lasser de regarder se déplacer des balles et des serpents depuis plusieurs semaines.

  5. #5
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 835
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 835
    Billets dans le blog
    1
    Par défaut
    Bonjour
    Citation Envoyé par scalpel Voir le message
    regarder se déplacer des balles et des serpents depuis plusieurs semaines.
    Plusieurs semaines... attention le trop est l'ennemi du bien. Passer plusieurs semaines sur un projet ça se fait mais ça se fait quand on a acquis les bases, donc dans des conditions où cet acquis reste acquis.
    En revanche passer plusieurs semaines sur une techno X alors qu'on débute amène de grandes chances d'oublier tout le reste. Et ça c'est aussi valable pour les fichiers que tu vas attaquer.
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  6. #6
    Membre confirmé Avatar de scalpel
    Homme Profil pro
    Gestionnaire de parc micro-informatique
    Inscrit en
    Novembre 2008
    Messages
    157
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Gestionnaire de parc micro-informatique
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2008
    Messages : 157
    Par défaut
    Citation Envoyé par Sve@r Voir le message
    ... attention le trop est l'ennemi du bien ...
    C'est un de mes gros défauts, dans tous les domaines, j'ai une trop forte tendance à m'acharner même quand je suis dans l'incapacité d'avancer.
    Du coup cela nui à ma progression.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Python 3.X] Revue de code d'un exercice du Swinnen - E2S1
    Par scalpel dans le forum Général Python
    Réponses: 24
    Dernier message: 24/02/2024, 19h16
  2. Outils de revue de code
    Par grabriel dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 22/08/2007, 11h56
  3. Outils de revue de code
    Par YAMKI dans le forum Qualimétrie
    Réponses: 2
    Dernier message: 15/02/2006, 12h29
  4. [Conseil] revue de code
    Par allstar dans le forum Langage
    Réponses: 2
    Dernier message: 09/11/2005, 11h02
  5. [Revue de code] Quels outils pour de grosses applis?
    Par franckR dans le forum Choisir un environnement de développement
    Réponses: 1
    Dernier message: 21/03/2004, 10h03

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