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

API, COM et SDKs Delphi Discussion :

Dialogue avec un programme d'échecs par le protocole UCI


Sujet :

API, COM et SDKs Delphi

  1. #1
    Rédacteur/Modérateur

    Avatar de Roland Chastain
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2011
    Messages
    4 070
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 4 070
    Points : 15 457
    Points
    15 457
    Billets dans le blog
    9
    Par défaut Dialogue avec un programme d'échecs par le protocole UCI
    Bonjour !

    J'aimerais bien savoir ce que vous pensez de ce programme. C'est une application graphique qui dialogue avec un programme d'échecs, en utilisant le protocole UCI. Les commandes qui appellent une réponse sont exécutées dans un thread. Un timer attend les réponses et les affiche lorsqu'elles sont disponibles.

    L'application semble fonctionner correctement mais j'aimerais savoir si le code est bien fait selon vous, ou s'il y a des choses que vous auriez faites autrement. L'objectif étant d'avoir une application qui serve à présenter le protocole UCI, et au-delà d'avoir une unité qui puisse être utilisée par moi ou par d'autres pour un vrai projet (un jeu d'échecs avec des pièces et tout).

    La compilation a été testée avec Delphi Berlin. J'espère que le fonctionnement du programme est assez intuitif. Les boutons s'activent ou se désactivent selon ce que vous avez le droit de faire.

    L'unité uci.pas est basée sur cet exemple :
    http://forum.lazarus.freepascal.org/...html#msg128820

    qui pour la partie "tuyaux" semble s'être appuyé sur celui-ci :
    http://www.tek-tips.com/faqs.cfm?fid=7402
    Fichiers attachés Fichiers attachés
    Mon site personnel consacré à MSEide+MSEgui : msegui.net

  2. #2
    Membre expérimenté
    Avatar de retwas
    Homme Profil pro
    Développeur Java/Delphi
    Inscrit en
    Mars 2010
    Messages
    698
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Java/Delphi
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 698
    Points : 1 608
    Points
    1 608
    Billets dans le blog
    4
    Par défaut
    Plutôt que d'attendre une réponse avec un Timer tu peux sans doute utiliser le TTask et un WaitForAll ou WaitForAny en fonction du nombre de thread que tu as.

  3. #3
    Rédacteur/Modérateur

    Avatar de Roland Chastain
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2011
    Messages
    4 070
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 4 070
    Points : 15 457
    Points
    15 457
    Billets dans le blog
    9
    Par défaut
    Citation Envoyé par retwas Voir le message
    Plutôt que d'attendre une réponse avec un Timer tu peux sans doute utiliser le TTask et un WaitForAll ou WaitForAny en fonction du nombre de thread que tu as.
    Merci pour ta réponse. Je ne connais pas tout ça : je vais me documenter.
    Mon site personnel consacré à MSEide+MSEgui : msegui.net

  4. #4
    Membre expérimenté
    Avatar de retwas
    Homme Profil pro
    Développeur Java/Delphi
    Inscrit en
    Mars 2010
    Messages
    698
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Java/Delphi
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 698
    Points : 1 608
    Points
    1 608
    Billets dans le blog
    4
    Par défaut
    Les tâches permettent d'exécuter du code discrètement et séparément dans un thread, sinon un thread et utiliser le Terminate uniquement quand tu as une réponse ?

    Un petit exemple pour les tâches :
    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
    var
    	ListTasks: array[0..n] of ITask; // uses System.Threading
    begin
    	// création d'une tâche
    	ListTasks[0] := TTask.Run(procedure
                           begin
                              MaProcQuiFaitQqch;
     
                              TThread.Synchronize(TThread.Current,
                                                  procedure
                                                  begin
                                                     Memo.Lines.Add('Début');
                                                  end));
     
    	// création de n tâches ...
     
    	// tâche exécutée quand les tâches de la liste sont terminées
    	// utiliser WaitForAny pour exécuter le code quand au moins une
    	// tâche est terminée
    	TTask.Run(procedure
                  begin
                     TTask.WaitForAll(ListTasks);
     
    		MaProcQuiFaitQqch_Suite;
     
                     TThread.Synchronize(TThread.Current,
                                         procedure
                                         begin
                                           Memo.Lines.Add('Terminé')
                                         end);
                  end);
    end;

Discussions similaires

  1. Réponses: 2
    Dernier message: 15/04/2010, 14h07
  2. Réponses: 2
    Dernier message: 23/10/2009, 16h13
  3. Réponses: 2
    Dernier message: 27/08/2009, 09h08
  4. Ouverture d'un fichier avec le programme par défaut
    Par blastafarie dans le forum C++Builder
    Réponses: 4
    Dernier message: 07/11/2007, 17h19
  5. Réponses: 1
    Dernier message: 23/07/2007, 11h00

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