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 :

Projet simulateur de bourse


Sujet :

Tkinter Python

  1. #1
    Nouveau Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2017
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 27
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2017
    Messages : 4
    Points : 1
    Points
    1
    Par défaut Projet simulateur de bourse
    Bonsoir tout le monde!
    Je suis étudiant et j'ai un projet à réaliser sur python grâce à tkinter: créer un interface graphique destinée à permettre de d'émettre des offres d'actions et s'en échanger.
    Le tout se passe sur un serveur mis en place par mon université. Nous nous servons donc d'un fichier client qui une fois enregistré dans le même dossier que le programme de l'interface graphique nous permet d'utiliser certaines fonctions, voici les seules qui m'intéressent aujourd'hui:
    r.ask('Nom de l'action',prix à l'unité, nbre d'actions) #permet d'émettre une offre d'achat d'actions
    r.bid('Nom de l'action', prix à l'unité, prix à l'unité) #permet d'émettre une offre de vente d'actions
    r.achats('Nom de l'action') #renvoit toutes les émission d'achat en cours de cette action sous cette forme:
    >>> r.achats("nom de l'action")
    [('Joueur A', 23,15), ('Joueur B',20,10), ('Joueur C', 17,23)] #('Joueur', prix, nombre)
    r.vente #de manière analogue pour les ventes

    Nous développerons par la suite une IA capable de servir de l'interface graphique afin de jouer contre les autres, mais c'est n'est pas mon problème.
    Concernant l'interface graphique, j'aimerais pouvoir être capable d'afficher une courbe du cours de chaque action en temps réel (le cours de l’action correspond à l’offre de vente
    la plus basse) à l'intérieur de cases que j'ai déjà créées à l'aide de grid.

    Je sais comment récupérer la valeur de la plus basse offre de vente:
    def cours():
    liste=r.achats('nom')
    return min(liste[0][1])
    Ma question est de savoir de quel fonction je puisse me servir pour afficher une sorte de graphique qui se trace en temps réel en recalculant à intervalles réguliers la valeur du cours.
    Mon professeur m'a parlé de la fonction after pour le rafraichissment, mais malgré mes recherches sur internet, je n'arrive pas à saisir comment s'en servir...
    J'ai pensé à une fonction qui trace des formes dans un canvas grâce à la fonction after sous forme de courbe. Mais j'ai beaucoup de mal à l'appliquer.
    Alors si jamais vous pourriez m'aguiller, un grand merci!

    Si vous avez lu tout ça je vous remercie beaucoup pour votre attention.
    Merci pour vos éventuelle réponses également.
    Bonne journée à tous!

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

    Citation Envoyé par Tchle Voir le message
    Mon professeur m'a parlé de la fonction after pour le rafraichissment, mais malgré mes recherches sur internet, je n'arrive pas à saisir comment s'en servir...
    J'ai pensé à une fonction qui trace des formes dans un canvas grâce à la fonction after sous forme de courbe. Mais j'ai beaucoup de mal à l'appliquer.
    Si vous ne montrez pas comment vous essayez de vous y prendre, c'est beaucoup de boulot pour imaginer et coder un exemple qui correspondrait à ce que vous cherchez à faire. De plus, comme on ne codera pas cela comme vous, vous risquez de ne pas y comprendre grand chose (et on bossera pour rien).

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

  3. #3
    Nouveau Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2017
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 27
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2017
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    Voici ce que j'ai écrit pour afficher le cours de la bourse:
    j'avais totalement oublié de le joindre, mes excuses!
    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
     
    def majcours():
        global debPartie
        if debPartie==True:
            cours=r.achats('nom')[0][1]
            labheur=Label(fenetre, textvariable=cours, width=50, background='white')
            labheur.grid(row=0, column=0)
            fenetre.after(100,majcours)
        if debPartie==False:
            cours="0"
            labheur=Label(fenetre, text=cours)
            labheur.grid(row=0, column=0)
            fenetre.after(100,majcoursapp)
     
    boutoncours=Button(fenetre, text="lancer le cours", command=majcours)
    boutoncours.grid(row=0,column=1)
    j'ai une fonction écrite pour le début de la partie qui est censée changer debPartie en True (r.top sert à se synchroniser avec les autres jouerus du serveur.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    def top():
        global debPartie 
        debPartie=True
        r.top()
        print("top!")

  4. #4
    Nouveau Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2017
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 27
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2017
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    Egalement, si quelqu'un souhaite voir le code en entier je peux l'envoyer par mail, il est trop volumineux pour être posté dans un message.

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

    Il faut prendre le temps d'oublier le programme que vous voulez réaliser pour penser aux fonctions que vous voulez lui ajouter. Et cela passe par jouer avec tkinter, after,... dans un premier temps pour comprendre comment çà fonctionne puis dans un deuxième temps pour adapter cela à votre programme.
    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
    import tkinter as tk
     
    value = 0
    handle = None
    def do_start():
        global value, handle
     
        label['text'] = value
        value += 1
        handle = label.after(200, do_start)
     
    def do_stop():
        global handle
        label.after_cancel(handle)
        handle = None
     
    root = tk.Tk()
    label = tk.Label(root, text='   ')
    label.pack()
    tk.Button(root, text='start', command=do_start).pack()
    tk.Button(root, text='stop', command=do_stop).pack()
    tk.mainloop()
    Une opération qui est démarrer et arrêtée...
    Et l'opération se résume à afficher un entier incrémenté indéfiniment.
    Pour les détails vous avez un bon tuto. - le lien pointe sur le chapitre qui parle des animations avec tkinter - et une bonne documentation - le lien point sur after* -.

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

  6. #6
    Nouveau Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2017
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 27
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2017
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    Je vais travailler là-dessus, merci beaucoup!
    Bonne soirée

Discussions similaires

  1. [XL-2003] Projet création simulateur
    Par Lutobor dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 07/11/2013, 15h39
  2. Qu'est ce qu'un grand projet ?
    Par Geronimo dans le forum Débats sur le développement - Le Best Of
    Réponses: 62
    Dernier message: 04/04/2013, 14h52
  3. Ymir : Projet de MMO simulateur de société.
    Par Ronchon_le_nain dans le forum Projets
    Réponses: 37
    Dernier message: 01/02/2012, 13h21
  4. bourse de projet master informatique
    Par kenza28684 dans le forum Etudes
    Réponses: 1
    Dernier message: 03/01/2008, 08h36
  5. Projet sur simulateur ( made in France )
    Par JeanA dans le forum Projets
    Réponses: 9
    Dernier message: 11/10/2006, 17h22

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