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 :

Aide bouton restart, [Python 3.X]


Sujet :

Python

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2016
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2016
    Messages : 3
    Points : 3
    Points
    3
    Par défaut Aide bouton restart,
    Bonjour,
    étant un débutant en la matière, je ne sais pas si cela est possible mais je voudrait ajouter a mon programme un bouton restarte et exite, Je sais mettre les boutons mais quel sont les commande a lui mettre pour qu'il donne cette fonctionnalité

    Merci

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

    Pour exit, c'est facile, vous appelez les fonctions "exit" ou "sys.exit" (mais il sera peut être brutal de les appeler n'importe quand).
    Pour redémarrer, il faut déjà préciser ce que vous entendez par là et dans tous les cas il faudra "coder".

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

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2016
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2016
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    Merci pour les information pour exit,
    Se que j'entant par restart c'est que une fois appuyer sur le boutton restart que le programe se relance du début (une boucle infini en gros)



    Voici mon code ci jamais :

    Même si la classe balle prend raquette en paramètre sa n'est pas bien au vu de se que je veux faire.

    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
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    from tkinter import *
    import tkinter as tk
    import random
    import time
     
     
     
    def exit():
            print ('exit')
    tk.Button(text='exit', command=exit).pack()
     
     
    class Balle:
        def __init__(self, canvas, raquette, couleur):
            self.canvas = canvas
            self.raquette = raquette
            self.id = canvas.create_oval(10, 10, 25, 25, fill=couleur)
            self.canvas.move(self.id, 245, 100)
            departs = [-3, -2, -1, 1, 2, 3]
            random.shuffle(departs)
            self.x = departs[0]
            self.y = -3
            self.hauteur_canevas = self.canvas.winfo_height()
            self.largeur_canevas = self.canvas.winfo_width()
            self.touche_bas = False
     
        def heurter_raquette(self, pos):
            pos_raquette = self.canvas.coords(self.raquette.id)
            if pos[2] >= pos_raquette[0] and pos[0] <= pos_raquette[2]:
                if pos[3] >= pos_raquette[1] and pos[3] <= pos_raquette[3]:
                    return True
                return False
     
        def dessiner(self):
            self.canvas.move(self.id, self.x, self.y,)
            pos = self.canvas.coords(self.id)
            if pos[1] <= 0:
                self.y = 3
            if pos[3] >= self.hauteur_canevas:
                self.touche_bas = True
            if self.heurter_raquette(pos) == True:
                self.y = -3
            if pos[0] <= 0:
                self.x = 3
            if pos[2] >= self.largeur_canevas:
                self.x = -3
     
    class Raquette:
        def __init__(self, canvas, couleur):
            self.canvas = canvas
            self.id = canvas.create_rectangle(0, 0, 100, 10, fill=couleur)
            self.canvas.move(self.id, 200, 300)
            self.x = 0
            self.largeur_canevas = self.canvas.winfo_width()
            self.canvas.bind_all('<KeyPress-Left>', self.vers_gauche)
            self.canvas.bind_all('<KeyPress-Right>', self.vers_droite)
     
        def vers_gauche(self, evt):
            self.x = -2
     
        def vers_droite(self, evt):
            self.x = 2
     
        def dessiner(self):
            self.canvas.move(self.id, self.x, 0)
            pos = self.canvas.coords(self.id)
            if pos[0] <= 0:
                self.x = 0
            elif pos[2] >= self.largeur_canevas:
                self.x = 0
     
     
    tk = Tk()
    tk.title("jeux balle  by RoiRed (python)")
    tk.resizable(0, 0)
    tk.wm_attributes("-topmost", 1)
    canvas = Canvas(tk, width=500, height=400, bd=0, highlightthickness=0)
    canvas.pack()
    tk.update()
     
    raquette = Raquette(canvas, 'black')
    balle = Balle(canvas, raquette, 'blue')
     
    while 1:
        if balle.touche_bas == False:
            balle.dessiner()
            raquette.dessiner()
        tk.update_idletasks()
        tk.update()
        time.sleep(0.01)

  4. #4
    Expert éminent

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 300
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 300
    Points : 6 780
    Points
    6 780
    Par défaut
    Salut,

    Si tu fais de la POO, il faut le faire pour tout.

    Crée ton plateau de jeu dans une classe.
    Par 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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
     
    class Game(Tk):
        def __init__(self):
            super().__init__()
            self.title("jeux balle  by RoiRed (python)")
            self.resizable(0, 0)
            self.wm_attributes("-topmost", 1)
            self.canvas = Canvas(self, width=500, height=400, bd=0, highlightthickness=0)
            self.canvas.pack()
            self.exit_btn = tk.Button(text='Exit', command=self.exit)
            self.exit_btn.pack()
            self.play_btn = tk.Button(text='Play', command=self.start)
            self.play_btn.pack()
     
            self.update()
     
            self.raquette = Raquette(self.canvas, 'black')
            self.balle = Balle(self.canvas, self.raquette, 'blue')
     
        def start(self):
            self.balle.reset()
            while 1:
                if self.balle.touche_bas == False:
                    self.balle.dessiner()
                    self.raquette.dessiner()
                self.update_idletasks()
                self.update()
                time.sleep(0.01)
     
        def exit(self):
            print('exit')
     
    if __name__ == '__main__':
        game = Game()
        game.mainloop()
    et tu modifies ta classe Balle en conséquence:
    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
     
    class Balle:
        def __init__(self, canvas, raquette, couleur):
            self.canvas = canvas
            self.raquette = raquette
            self.id = canvas.create_oval(10, 10, 25, 25, fill=couleur)
            self.canvas.move(self.id, 245, 100)
            self.hauteur_canevas = self.canvas.winfo_height()
            self.largeur_canevas = self.canvas.winfo_width()
     
        def reset(self):
            departs = [-3, -2, -1, 1, 2, 3]
            random.shuffle(departs)
            self.x = departs[0]
            self.y = -3
            self.canvas.move(self.id, self.x, self.y,)
            self.touche_bas = False
    Pour les boutons il serait mieux de les mettre côte-à-côte mais il y a trop longtemp que je n'ai plus touché à TKinter.

    Ce n'est pas un problème que la balle aie l'instance de la raquette, c'est tout-à-fait normal.

  5. #5
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2016
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2016
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    Merci, pour mettre les bouton dans la canvas pas de problème j'ai réussie même si j'ai pas tous comprit ^^,

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

Discussions similaires

  1. AIDE Bouton copier d'une feuille à une autre
    Par vincent59139 dans le forum Excel
    Réponses: 3
    Dernier message: 19/09/2013, 14h03
  2. [XL-2003] Finaliser bouton Restart pour chronomètre
    Par tibs1502 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 12/02/2013, 16h43
  3. Aide bouton Modifier
    Par Alphadjo dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 16/07/2008, 08h17
  4. [HTML] aide bouton type checkbox
    Par calitom dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 24/10/2006, 17h31
  5. besoin aide bouton avec effet zoom fonctionne pas.
    Par zicomoun dans le forum Flash
    Réponses: 3
    Dernier message: 13/06/2006, 08h15

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