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 :

Besoin d'aide pour un jeux de fléchettes


Sujet :

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
    Novembre 2014
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2014
    Messages : 5
    Par défaut Besoin d'aide pour un jeux de fléchettes
    Bonjour , je suis actuellement en Ts spé ISN est par conséquent je suis débutant en python .
    Je vous explique mon programme , le but est de créer un jeu de fléchettes dans lequel lorsque l'on clique la cible apparait à un nouvel endroit qui est définie aléatoirement .
    Le système de comptage des points fonctionne en calculant la distance du clique avec le centre de la cible .
    J'avoue ne pas savoir d'ou provient le problème et par conséquent l'aide de quelqu'un de plus qualifier serait la bienvenue .
    Je joins ci-dessous mon programme
    Images attachées Images attachées  
    Fichiers attachés Fichiers attachés

  2. #2
    Membre Expert
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    1 068
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 068
    Par défaut
    quel problème ?

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2014
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2014
    Messages : 5
    Par défaut
    Je n'arrive pas à se faire déplacer l'image

  4. #4
    Expert confirmé

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

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 307
    Par défaut
    Salut,

    Ton code est suffisamment court pour être placé ici.

    Ton 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
     
    #Flechettes#
    import time
    import random
    from math import *
    from Tkinter import *
     
    p=0 # nombres de points au départ
     
    def clic():#fonction qui calcul les points et qui déplace l'image#
        if X-100+Y-100<20 :
            p=p+50
        elif 20<X-100+Y-100 and X-100+Y-100<50:
            p=p+20
        elif 50<X-100+Y-100 and X-100+Y-100<100:
            p=p+10
     
        X=random.randint(150,250)
        Y=random.randint(150,250)
        found.coords(img,X,Y)
     
    def chrono():
        tZero=time.time() #Récupération de tZero
        t=time.time() -tZero # Temps après tZero
        while t<15 : # temps total du chrono
     
          t=time.time() -tZero
            # Crée un temps en seconde 4.84287779592 (0=01/01/1970)
     
          tiTuple=time.gmtime(t)
            # Conversion en tuple (1970, 1, 1, 0, 0, 4, 3, 1, 0) 
     
          reste=t-tiTuple[3]*3600.0-tiTuple[4]*60.0-tiTuple[5]*1.0
            # Recupération du reste    
     
          resteS=("%.2f" % reste )[-2::]
            #Affiche les dixièmes et centièmes de l'arrondi ex: 84
     
          tt=time.strftime("%H:%M:%S", tiTuple)+","+resteS
     
          time.sleep(0.01) #Attente en second
          if t>15:
              ecoule=Label(text='time up')
     
     
    #esthetique#
    start=Button(text="Lancer le temps",command=chrono)
    start.pack()
    found=Canvas(width=800,height=800,bg="white")
    found.pack()
    found.bind('<Button-1>',clic)
    ficherimg=PhotoImage(file="thumb.gif")
    img=found.create_image(200,200,image=ficherimg)
    chrono1=Label(fen1,text="TEMPS")
    chrono1.place(x=150,y=0)
    p=Label(text=str(p)+"POINTS")
    p.place(x=20,y=0)
     
     
    fen1.mainloop()
    La cible sera correctement déplacée si tu corriges les erreurs qui ont dût inévitablement apparaître quand tu l'as testé.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Traceback (most recent call last):
      File "Projet1.py", line 54, in <module>
        chrono1=Label(fen1,text="TEMPS")
    NameError: name 'fen1' is not defined
    Il faut créer ta fenêtre principale avant tout.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Exception in Tkinter callback
    Traceback (most recent call last):
      File "/usr/lib/python2.7/lib-tk/Tkinter.py", line 1413, in __call__
        return self.func(*args)
    TypeError: clic() takes no arguments (1 given)
    À la lecture de ton code, on se demande d'où sortent ces X et Y de la fonction clic() ?
    La réponse est dans l'erreur et la solution est là:
    http://effbot.org/tkinterbook/tkinte...d-bindings.htm

    Ensuite ton calcul vérifie si les coordonnées du clic se trouvent dans les rangs (-infini, 19), (21, 49) et (51, 99) mais par rapport à quoi ? pas à la cible en tous cas puisque tu ne gardes aucune référence de sa position.

    Et, pour finir, ton chrono est beaucoup trop compliqué d'une part et est bloquant d'autre part. Bloquant veut dire que ton code est à l'arrêt pendant les quinze secondes du timer, il faudra le mettre dans un thread.
    Python possède un module fait pour ça:
    https://docs.python.org/2/library/th...#timer-objects

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2014
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2014
    Messages : 5
    Par défaut
    J'ai réparé le problème de fenetre et supprimer mon chrono pour y placer celui que vous m'avez conseillé mais il me met Time is not define .
    De plus lorsque je clique il me met erreur: clic() takes no arguments (1 given)
    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
    #Flechettes#
    import time
    import random
    from math import *
    from Tkinter import *
    fen1=Tk()
     
    p=0 # nombres de points au départ
     
    def clic():#fonction qui calcul les points et qui déplace l'image#
     
        if X-evtx+Y-evty<20 :
            p=p+50
        elif 20<X-evtx+Y-evty and X-evtx+Y-evty<50:
            p=p+20
        elif 50<X-evtx+Y-exty and X-evtx+Y-evty<100:
            p=p+10
     
        X=random.randint(150,250)
        Y=random.randint(150,250)
        found.coords(img,X,Y)
    def chrono():
        temps=Label(fen1,text="temps écoulé")
    t=Timer(15.0,chrono)
    t.start()
     
     
    #esthetique#         
    found=Canvas(fen1 ,width=800,height=800,bg="white")
    found.pack()#Flechettes#
    import time
    import random
    from math import *
    from Tkinter import *
    fen1=Tk()
    found.bind('<Button-1>',clic)
    ficherimg=PhotoImage(file="mjAA.gif")
    img=found.create_image(200,200,image=ficherimg)
    p=Label(fen1 ,text=str(p)+"POINTS")
    p.place(x=300,y=0)
     
    fen1.mainloop()

  6. #6
    Expert confirmé

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

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 307
    Par défaut
    - 1 C'est pourtant dans l'exemple de la doc:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    from threading import Timer
    - 2 Je t'ai mis le lien où tu aurais pu voir:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    def callback(event):
        print "clicked at", event.x, event.y

Discussions similaires

  1. [mini-jeux guitare] Besoin d'aide pour stocker des sons
    Par betsprite dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 01/10/2010, 18h00
  2. Réponses: 42
    Dernier message: 11/03/2007, 14h09
  3. besoin d'aide pour le composant DBComboBox
    Par jane2002 dans le forum Bases de données
    Réponses: 8
    Dernier message: 28/02/2004, 19h01
  4. [TP]besoin d'aide pour commandes inconnues
    Par Upal dans le forum Turbo Pascal
    Réponses: 15
    Dernier message: 03/10/2002, 10h48
  5. Besoin d'aide pour l'I.A. d'un puissance 4
    Par Anonymous dans le forum C
    Réponses: 2
    Dernier message: 25/04/2002, 17h05

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