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 :

comment faire pour terminer une partie lorsque l'on touche un carré?


Sujet :

Tkinter Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2016
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2016
    Messages : 4
    Par défaut comment faire pour terminer une partie lorsque l'on touche un carré?
    alut je suis en train de faire un programme python avec Canopy sur Tkinter et je voudrais faire en sorte que si le point rouge touche un carré noir, la partie se termine ...
    voilà mon code :
    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
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    # -*- coding: utf-8 -*-
    from Tkinter import *
    from random import randint
    def Clavier(event):
        """ Gestion de l'événement Appui sur une touche du clavier """
        global PosX,PosY
        touche = event.char
        # déplacement vers le haut
        if touche == "z":
            PosY -= 20
            if PosY<0:
                PosY = 0
        # déplacement vers le bas
        if touche == "s":
            PosY += 20
            if PosY>320:
                PosY = 320
        # déplacement vers la droite
        if touche == "d":
            PosX += 20
            if PosX>480:
                PosX = 480
        # déplacement vers le haut
        if touche == "q":
            PosX -= 20
            if PosX<0:
                PosX = 0
     
        # on dessine le pion à sa nouvelle position
        Canevas.coords(Pion,PosX -10, PosY -10, PosX +10, PosY +10)
     
        #creation de la fonction qui cache le pion
     
    def cache():
        X=0
        Y=40
        for loopp in range (24):
            while X<=480:
                B=randint(0,16)*20
                while Y<=320:
                    carre = Canevas.create_rectangle(X-10,Y-10,X+10,Y+10,width=2,fill='green')
                    carre2=Canevas.create_rectangle(X-10, B-10, X+10, B+10, width=2, fill='black')
                    Y=Y+20
                X=X+20
                if X>=40:
                    Y=0
                if X<40:
                    Y=40
     
     
     
     
     
     
        # Création de la fenêtre principale
     
     
    Mafenetre = Tk()
    Mafenetre.title('Pion')
     
    # position initiale du pion
    PosX = 0
    PosY = 0
     
    # Création d'un widget Canvas (zone graphique)
    Largeur = 480
    Hauteur = 320
    Canevas = Canvas(Mafenetre, width = Largeur, height =Hauteur, bg ='white')
    Pion = Canevas.create_oval(PosX-10,PosY-10,PosX+10,PosY+10,width=2,fill='red')
    cache()
     
    Canevas.focus_set()
    Canevas.bind('<Key>',Clavier)
    Canevas.grid(row=0, column = 0, columnspan =3,padx = 5, pady = 5)
     
    # Création d'un widget Button (bouton Quitter)
    Button(Mafenetre, text ='Quitter', command = Mafenetre.destroy).grid(row=1, column = 3, padx = 5, pady = 5)
     
    Mafenetre.mainloop()
    au passage si vous avez des conseils quand à mon code et ma manière de programmer hésitez pas à m'en faire part car je ne suis encore qu'un débutant
    merci!!!

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 790
    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 790
    Par défaut
    Citation Envoyé par cpaspos Voir le message
    je voudrais faire en sorte que si le point rouge touche un carré noir, la partie se termine ...
    où avez vous codé "si le point rouge touche un carré noir" ?

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

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2016
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2016
    Messages : 4
    Par défaut
    justement je ne sais pas comment le coder

  4. #4
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 790
    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 790
    Par défaut
    Citation Envoyé par cpaspos Voir le message
    justement je ne sais pas comment le coder
    Donc vous avez 2 questions
    Pour la première, je vous invite à jouer avec ce code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    >>> import tkinter as tk
    >>> canvas = tk.Canvas()
    >>> point = canvas.create_oval(10, 10, 20, 20, fill='black')
    >>> carre = canvas.create_rectangle(20,20, 40, 40)
    >>> canvas.find_overlapping(*canvas.bbox(point))
    (1, 2)
    >>> carre
    2
    >>> piont
    1
    >>> exit()
    note: vous avez (j'en suis sûr) une documentation tkinter sous le coude pour aller voir ce que font les méthodes du widget Canvas que je propose.

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

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2016
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2016
    Messages : 4
    Par défaut
    merci je vais aller voir ça de plus près

  6. #6
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2016
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2016
    Messages : 4
    Par défaut
    j'ai regardé un peu partout pour trouver une signification à ta fonction mais j'ai juste compris qu'elle rescençait les items dans le canvas mais je ne sais pas comment li dire de faire quelque chose avec tel ou tel item ni comment appeler ces derniers...

Discussions similaires

  1. comment faire pour aligner deux partie d'une table enboitée
    Par felosa dans le forum Mise en page CSS
    Réponses: 10
    Dernier message: 27/05/2008, 22h03
  2. comment faire pour imprimer une partie de ma page
    Par hbar01 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 16/04/2008, 03h31
  3. Réponses: 8
    Dernier message: 11/08/2006, 15h13
  4. Comment faire pour killer une application ?
    Par tintin22 dans le forum API, COM et SDKs
    Réponses: 4
    Dernier message: 17/08/2004, 19h16
  5. comment faire pour qu'une application soit toujours visible ?
    Par goldbar dans le forum Langages de programmation
    Réponses: 2
    Dernier message: 28/03/2004, 15h35

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