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

Ada Discussion :

Get sans "bloquer" le programme principal.


Sujet :

Ada

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Get sans "bloquer" le programme principal.
    Bonjour,

    Je suis étudiant en L2 et j'ai un problème avec un projet de "jeu de course" en console(sans interface graphique). Le but du programme est de vous faire conduire une voiture sur une route droite où des obstacles apparaissent aléatoirement, cela fonctionne mais pour contrôler le véhicule on est obligé de rentrer quelque chose au clavier et un get_immediate empêche le programme de continuer, ce qui se traduit ici par un arrêt du défilement du décor, ce qui rend le jeu peu jouable. Après de nombreuses recherches infructueuses j'espère trouver une réponse satisfaisante ici.

    merci d'avance.

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour!

    Le seul moyen que je connaisse est de faire une tache avec une entrée receive(char : in character); et de faire une boucle dans le programme appelant.

    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
     
    task jeu_de_course is
       entry receive(char : in character);
    end jeu_de_course;
     
     
    task body jeu_de_course is
    begin
       loop
          select
              accept receive(char : in character) do
                    -- Contrôle du programme;
              end receive;
           or
               delay 0.1; -- pour avoir le temps d'entrer un char;
               -- code du jeu à défaut de char
           end select;
        end loop;         
    end jeu_de_course;
     
     
       char : character;
    begin
       loop
         get_immediate(char);
         jeu_de_course.receive(char);
       end loop;
    end;
    Est-ce que ça te convient ?

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    merci, je vais essayer ça.

  4. #4
    Invité
    Invité(e)
    Par défaut
    Vous pouvez regarder dans le programme suivant, vous trouverais deux exemple de get, un get_immediate dans le main et un get_line() dans application, non bloquant ::= http://www.toofiles.com/fr/oip/docum...s-002beta.html

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