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

Turbo Pascal Discussion :

Introduire un délai de réponse dans un Quizz


Sujet :

Turbo Pascal

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Novembre 2012
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Novembre 2012
    Messages : 14
    Par défaut Introduire un délai de réponse dans un Quizz
    Bonjour,

    J'ai pratiquement le même souci que dans ce sujet -> http://www.developpez.net/forums/d69...delai-reponse/

    Le joueur a X secondes pour répondre mais il peut répondre autant de fois qu'il veut. Au bout des X secondes, dans tous les cas, on passe à la question suivante (même s'il est en train d'écrire, ou même s'il n'a rien proposé comme réponse et qu'il est encore en train de réfléchir)

    Mais je n'ai pas réussi à comprendre ce qu'ils faisaient dans leurs bouts de code.
    Ce que j'ai compris, c'est que le readln bloque tout, ça j'en étais presque sûr avant de venir ici.

    Merci d'avance pour votre aide !

  2. #2
    Rédacteur/Modérateur

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

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 4 173
    Billets dans le blog
    9
    Par défaut
    Effectivement, la discussion dont tu parles contient le principe de la solution.

    Il s'agit d'écrire une procédure de saisie (pour remplacer ReadLn) en y incluant un chronomètre. On lit les touches du clavier et on reconstitue le mot saisi, jusqu'à ce que l'utilisateur appuie sur Entrée ou que le temps imparti soit écoulé.
    Si plusieurs procédures sont concernées par cette limite de temps, la solution est la même.

    Voici une fonction, bâtie sur la procédure GetTime de l'unité Dos, qui renvoie le temps écoulé (en secondes) depuis un instant déterminé.

    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
     
    program GetTime_02;
     
    uses
      Crt, Dos;
     
    function TimeInSeconds: real;
    (* Heure courante en secondes *)
    var
      h, m, s, c: word;
    begin
      GetTime(h, m, s, c);
      TimeInSeconds := h * 3600 + m * 60 + s + c / 100;
    end;
     
    var
      InitialTime: real;
      (* Heure initiale *)
     
    procedure SetInitialTime;
    (* Attribution de l'heure initiale *)
    begin
      InitialTime := TimeInSeconds;
    end;
     
    function ElapsedTime: real;
    (* Temps écoulé *)
    begin
      ElapsedTime := TimeInSeconds - InitialTime;
    end;
     
    begin
      SetInitialTime;
      WriteLn(ElapsedTime:0:2, ' s');
     
      Delay(500);
      WriteLn(ElapsedTime:0:2, ' s');
     
      Delay(1000);
      WriteLn(ElapsedTime:0:2, ' s');
     
      ReadKey;
    end.

Discussions similaires

  1. Réponses: 9
    Dernier message: 01/12/2014, 10h40
  2. [Turbo Pascal] Introduire un délai de réponse
    Par lex001 dans le forum Turbo Pascal
    Réponses: 8
    Dernier message: 17/03/2009, 02h35
  3. Réponses: 4
    Dernier message: 10/01/2006, 14h53
  4. Paramêtre de réponse dans outlook
    Par krfa1 dans le forum Outlook
    Réponses: 1
    Dernier message: 15/10/2005, 15h38
  5. Réponses: 2
    Dernier message: 16/12/2004, 15h33

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