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

Tkinter Python Discussion :

Exercice - Application de damier


Sujet :

Tkinter Python

  1. #1
    Membre à l'essai
    Homme Profil pro
    magasinié
    Inscrit en
    Décembre 2018
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : magasinié

    Informations forums :
    Inscription : Décembre 2018
    Messages : 34
    Points : 21
    Points
    21
    Par défaut Exercice - Application de damier
    Bonjour,

    Intitulé : Inspirez-vous du script précédent pour écrire une petite
    application qui fait apparaître un damier (dessin
    de cases noires sur fond blanc) lorsque l’on clique sur un bouton :

    8.10 À l’application de l’exercice précédent, ajoutez un
    bouton qui fera apparaître des pions au hasard sur le
    damier (chaque pression sur le bouton fera apparaître
    un nouveau pion).

    Je commence en essayant de faire la base et surtout faire différents test avant de choisir comment j'ai envie de le créer.
    Donc la mon but c'est juste de cliquer et que les triangles soient à différent emplacements (je verrais ensuite pour faire en 1 clique etc mes j'aimerais déjà comprendre comment faire sa.)

    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
    from tkinter import *
    def rectangle():
        x0,y0,x1,y1= 10,10,50,50
        cadre.create_rectangle(x0,y0,x1,y1)
     
     
     
     
     
     
     
    fen1= Tk()
    cadre= Canvas (fen1,height=500)
    cadre.pack()
    bouton= Button (fen1, text='rectangle',command=rectangle)
    bouton.pack()
    fen1.mainloop()

    J'ai essayé 30 façons sans succès.
    Comment changer mon rectangle dans la fonction pour que chaque rectangle soit autre pars sans mettre une variable globale ?

    Exemple :
    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
    from tkinter import *
    def rectangle():
        x0,y0,x1,y1= 10,10,50,50
        cadre.create_rectangle(x0,y0,x1,y1)
        x0,y0,x1,y1= x1,y1,x1+50,y1+50
     
     
     
     
     
     
     
    fen1= Tk()
    cadre= Canvas (fen1,height=500)
    cadre.pack()
    bouton= Button (fen1, text='rectangle',command=rectangle)
    bouton.pack()
    fen1.mainloop()
    C'est un exemple met sa ne prend jamais en compte la ligne en dessous de mon "create".
    J'ai essayé avec une boucle de faire plusieurs fonctions etc rien ne marche et je commence vraiment à saturer.
    Pourquoi le pc fait chier à obligé d'utiliser une globale ?
    Je demande rien de fou, j'ai donné les premières valeur de la variable et que la variable change à chaque appel de la fonction.

    J'ai regardé la réponse, elle ne me conviens pas du tout et je ces très bien que de moi même je saurais incapable de le refaire comme il la fait donc je cherche à réussir l'exercice en écrivant d'une façon claire pour moi sauf que sa ne fonctionne pas..

    Je ne suis pas bon en math donc j'ai beaucoup de mal avec les exercices comme sa et il utilise toujours plein de calcul pour arriver au résultat et je m'y perd complètement.


    Je n'ai pas envie de continuer le livre et sauter des étapes mes sa commence vraiment à me blazer cet exercice et sa me donne juste envie d'abandonner.
    Jamais j'arriverais de moi même à résoudre ce genre de chose c'est trop complexe et je dois être trop con.

    Pourtant j'ai fais plein de recherches sur les algo, donc les codes en général mes je suis incapable d'appliquer et même les réponses ont plein de fois pas de sens pour moi.
    Un trop gros manque d'intelligence surement.

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 277
    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 277
    Points : 36 762
    Points
    36 762
    Par défaut
    Salut,

    Donc la mon but c'est juste de cliquer et que les triangles soient à différent emplacements (je verrais ensuite pour faire en 1 clique etc mes j'aimerais déjà comprendre comment faire sa.)
    Chaque fois qu'il sera appelé, la fonction/callback:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    def rectangle():
        x0,y0,x1,y1= 10,10,50,50
        cadre.create_rectangle(x0,y0,x1,y1)
    va créer un rectangle au même endroit.

    Si vous voulez que çà change à chaque appel, il faudra écrire quelque chose comme:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    import random
    def rectangle():
        x, y = random.randint(0,200), random.randint(0, 200)
        cadre.create_rectangle(x, y, x+40, y+40)
    Comment changer mon rectangle dans la fonction pour que chaque rectangle soit autre pars sans mettre une variable globale ?
    C'est pas ce qu'on vous demande mais... si une fonction crée un objet (un rectangle ou autre chose), et que vous voulez accéder à cet objet plus tard (via une autre fonction), c'est impossible à faire sans passer par une variable globale.
    C'est comme çà que les fonctions fonctionnent: par défaut, rien ne survit à la fin de la fonction.
    Plus tard, vous découvrirez la POO et les classes qui vous permettront de faire çà autrement.

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

  3. #3
    Membre à l'essai
    Homme Profil pro
    magasinié
    Inscrit en
    Décembre 2018
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : magasinié

    Informations forums :
    Inscription : Décembre 2018
    Messages : 34
    Points : 21
    Points
    21
    Par défaut
    Merci pour votre réponse

    En gros impossible de faire comme je le voulais ^^
    Donc sans la réponse je n'aurais aucune idée de comment le faire et même avec la réponse je ne pourrais pas le refaire sans la regarder pour un algo aussi simple pas rapport au algo que j'aimerais créer plus tard.

    En 20 jours j'ai autant avancé que la plupart en 2 jours. La tristesse je me sens tellement naze

  4. #4
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 277
    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 277
    Points : 36 762
    Points
    36 762
    Par défaut
    Citation Envoyé par outiat Voir le message
    En gros impossible de faire comme je le voulais ^^
    Vous devez apprendre à faire avec ce que sont Python, tkinter, les fonctions,...
    Bon courage

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

Discussions similaires

  1. Application multi-dossiers, multi-exercices
    Par BENKOUIDER dans le forum WinDev
    Réponses: 9
    Dernier message: 16/06/2009, 00h25

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