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

C Discussion :

réalisation d'un chronométre dans le programme


Sujet :

C

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    126
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 126
    Par défaut réalisation d'un chronométre dans le programme
    Bonjour,

    J'aimerais savoir s'il est possible en c de réaliser un chronométre de telle façon a mesurer le temps mis par un joueur pour résoudre une partie ?
    Il devrait commencer des l'execution du programme et se terminer une fois toutes les cases remplies vous voyez certainement de quel jeu je parle

    Cependant petites restriction je suis sous dev c++ avec windows et je suis en mode console

    Merci d'avance pour toute vos suggestions !

  2. #2
    Membre confirmé Avatar de semaj_james
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    193
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 193
    Par défaut
    regarde ici: faq chronometre

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    126
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 126
    Par défaut
    merci pour le lien mais j'avais déja vu des choses similaires mais rien qui ne correspond vraiment à ce que je recherche
    De plus quand je compile il ne trouve aucune erreur mais affiche une fenêtre par intermittence et la referme tout de suite ?

    Help please

  4. #4
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par masterix59
    J'aimerais savoir s'il est possible en c de réaliser un chronométre de telle façon a mesurer le temps mis par un joueur pour résoudre une partie ?
    Il devrait commencer des l'execution du programme et se terminer une fois toutes les cases remplies vous voyez certainement de quel jeu je parle

    Cependant petites restriction je suis sous dev c++ avec windows et je suis en mode console
    C'est pas évident. Si c'est pour mesurer le temps entre deux saisie standard (stdin), c'est possible (time() donne des secondes, enfin, je crois).

    Si c'est pour afficher un décompte pendant une attente en vue d'une saisie, on ne peut pas faire ça de façon portable. Il faut soit une lecture synchrone non blocante du clavier (kbhit(), getch() de CONIO, par exemple), soit des threads. Dans les 2 cas, il faut gérer l'écran en mode direct (plein écran) pour simuler une sorte de fenêtrage (chaque fonction gérant sa partie de l'ecran).

  5. #5
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par semaj_james
    regarde ici: faq chronometre
    clock() mesure du temps machine (CPU time), pas du temps de pendule (wall clock). Pour ça, il faut time().

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    126
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 126
    Par défaut
    oula oup ça a pas l'air évident tout chat même ce que j'ai trouver sur internet dépasse de loin mes compétences j'aimerais savoir si il existe une solution simple en c ?

  7. #7
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par masterix59
    oula oup ça a pas l'air évident tout chat même ce que j'ai trouver sur internet dépasse de loin mes compétences j'aimerais savoir si il existe une solution simple en c ?
    Oui, avec time().
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    #include <stdio.h>
    #include <time.h>
     
    int main (void)
    {
       time_t start = time (NULL);
     
       getchar ();
     
       printf ("Duree = %ds\n", (int) (time (NULL) - start));
       return 0;
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Je tape ce que je veux pendant un certain temps, puis <enter>
    Duree = 28s
     
    Press ENTER to continue.
    Ca me parait un peu étrange comme résultat...

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    126
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 126
    Par défaut
    Merci Emmanuel !
    Mais cependant j'ai encore quelque soucis tout d'abord a la compilation, quand je compile même en rajoutant quelque chose entre time et getchar()
    il m'affiche seulement :
    "appuyez sur une touche pour continuer" puis plus rien ???

    et dans le code %ds ça correspond à quoi j'ai rien trouver là dessus ?

    Merci de m'aider je sait il y a du boulot avec mon cas lol

  9. #9
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par masterix59
    Mais cependant j'ai encore quelque soucis tout d'abord a la compilation, quand je compile même en rajoutant quelque chose entre time et getchar()
    il m'affiche seulement :
    "appuyez sur une touche pour continuer" puis plus rien ???
    Alors, c'est pas un problème de compilation, mais d'exécution. Tu confonds les deux ? Et tu ajoutes quoi ? Est-ce que mon code, tel quel, fonctionne chez toi ?
    et dans le code %ds ça correspond à quoi j'ai rien trouver là dessus ?
    C'est "%d". Le "s", c'est pour secondes... T'as pas vu que ça affichait 28s ?

  10. #10
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    126
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 126
    Par défaut
    alors le code quand je le compile tel quel, compile mais c'est bien l'execution ou il y a un probleme en gros une fois compiler il affiche une fenetre dos a intervalle régulier mais j'ai même pas le temps de voir ce qui a écrit et si je ne ferme pas le programme il me fait sa en continue ?
    ça vient de où ? au depart j'ai penser a system("pause") mais ça change rien...

    le code compiler :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    #include <stdio.h>
    #include <time.h>
     
    int main (void)
    {
       time_t start = time (NULL);
     
       getchar ();
     
       printf ("Duree = %ds\n", (int) (time (NULL) - start));
       return 0;
    }
    Je compile avec dev c++ pour information !

  11. #11
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par masterix59
    en gros une fois compiler il affiche une fenetre dos a intervalle régulier mais j'ai même pas le temps de voir ce qui a écrit et si je ne ferme pas le programme il me fait sa en continue ?
    ça vient de où ? au depart j'ai penser a system("pause") mais ça change rien...

    Je compile avec dev c++ pour information !
    Curieux. Je viens d'essayer avec wxDev-C++ (la dernière version de Dev-C++, qui a été finalement repris en wxWidget) :

    Ca donne, par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    mlkdsf mlksdfùmlksqd ùmlkqsd fùmlkds
    Duree = 5s
    Appuyez sur une touche pour continuer...
    Bien sûr, j'ai ajouté system("pause"); comme conseillé par Dev-C++...
    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
     
    #include <stdio.h>
    #include <time.h>
    #include <stdlib.h>
     
    int main (void)
    {
       time_t start = time (NULL);
     
       getchar ();
     
       printf ("Duree = %ds\n", (int) (time (NULL) - start));
     
       system ("pause");
       return 0;
    }

  12. #12
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    126
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 126
    Par défaut
    me revoilà ben je c pas ce qui c'est passer ! Pour savoir si ça venait de dev j'ai installer la version wxDev-C++ et ça compile et sa fonctionne donc ça devait venir de là
    Enfin l'essentiel et que ça marche maintenant je vais essayer de faire un petit sous menus pour gérer les meilleurs temps en fonction du niveau de difficulté et ça deviendra bon...
    Merci encore Emmanuel !!!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Débutant] Réaliser un appel de programme dans un programme matlab
    Par esstin dans le forum MATLAB
    Réponses: 2
    Dernier message: 07/01/2010, 21h27
  2. commande shell dans un programme
    Par diefo dans le forum C
    Réponses: 3
    Dernier message: 15/08/2003, 13h37
  3. Réponses: 2
    Dernier message: 24/06/2003, 20h31
  4. [] Utiliser AVI d'une DLL dans mon programme
    Par seb.49 dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 02/05/2003, 14h52
  5. [langage] Commande DOS dans un programme
    Par Jibees dans le forum Langage
    Réponses: 15
    Dernier message: 23/04/2003, 12h08

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