Menu

Faire un Chrono timout

Messages postés
34
Date d'inscription
samedi 23 septembre 2017
Statut
Membre
Dernière intervention
28 juin 2019
- - Dernière réponse : [Dal]
Messages postés
5163
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
10 juillet 2019
- 28 juin 2019 à 18:16
Bonjour ,

Je m'explique , je cherche à refaire un jeux connu ou le but et de trouver le maximum de mot qui commence par une lettre tirée aleatoirement en 30 sec . et mon probleme et la . Comment faire comprendre au code qu'il doit s'arreter au bout de 30 sec sans pour autant bloqué le code ni avec Sleep ni avec cin>>
Merci
Afficher la suite 

2 réponses

Messages postés
5163
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
10 juillet 2019
785
0
Merci
Bonjour codrux,

Est-ce un programme console ?

Est-ce un programme qui doit fonctionner seulement sous Windows, ou un autre système d'exploitation donné, ou doit-il être portable pour fonctionner sur plusieurs ?

Dal
codrux
Messages postés
34
Date d'inscription
samedi 23 septembre 2017
Statut
Membre
Dernière intervention
28 juin 2019
1 -
Bonjour dal ,

Merci pour ta reponse . Alors oui de preference portable . Apres une option windows ne me derangerai pas nn plus
[Dal]
Messages postés
5163
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
10 juillet 2019
785 -
est-ce un programme console ou avec une interface graphique Windows ?
codrux
Messages postés
34
Date d'inscription
samedi 23 septembre 2017
Statut
Membre
Dernière intervention
28 juin 2019
1 -
nn nn c'est un programme console
Commenter la réponse de [Dal]
Messages postés
5163
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
10 juillet 2019
785
0
Merci
en mode console, si tu veux faire un programme portable qui te permette de gérer des entrées non-bloquantes, tu peux utiliser la bibliothèque ncurses, qui en prime te permettra de gérer l'écran et en affichant le texte avec des couleurs ou enrichissements selon les capacités du terminal, en plaçant le curseur où tu veux, en effaçant le contenu des lignes, etc.

Voilà un exemple de programme qui permettrait à un utilisateur de saisir autant de chaînes qu'il peut et qui s''arrête au bout de 30 secondes en listant les chaînes qu'il a tapées.

#include <ncurses.h>
#include <string>
#include <vector>
#include <iostream>
#include <ctime>

int main(void) {
    std::string str;
    std::vector<std::string> sv;

    initscr();
    keypad(stdscr, TRUE);
    nodelay(stdscr, TRUE);

    addstr("Type strings during 30 seconds (press ENTER to finish the string)\n");
    move(5, 0);
    std::clock_t start;

    while (1) {
        char ch;

        ch = getch();
        if (ch != ERR) {
            if (ch != 10) {
                str.push_back(ch);
            } else {
                sv.push_back(str);
                str.clear();
                clrtoeol();
            }
            refresh();
        }
        if ( (( std::clock() - start ) / (double) CLOCKS_PER_SEC) > 30 )
            break;
    }
    nodelay(stdscr, FALSE);
    endwin();

    std::cout << "You typed the following strings:" << std::endl;
    for(std::string s : sv) {
        std::cout << s << std::endl;
    }

    return 0;
}

avec g++ cela se compile avec l'option
-lncurses
et il faut, pour que la compilation se produise correctement, que les entêtes de ncurses et ses binaires soient dans un emplacement standard ou connu du compilateur.

C'est un programme simple, pour te montrer comment faire, sans gestion des touches particulières fléchées ou de suppression, qu'il faudrait rajouter si tu veux.

Tu peux aussi ajouter l'affichage d'un décompte du temps restant à des coordonnées précises de l'écran, le décompte des chaînes entrées, des points, etc.

Dal
[Dal]
Messages postés
5163
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
10 juillet 2019
785 -
le programme ci-dessus a été testé sous Linux et devrait fonctionner de façon similaire sous Windows et toutes les plateformes sur lesquelles ncurses a été porté. Sous Windows, en dehors des portages de ncurses, il y a aussi le projet PDCurses qui est basé sur ncurses et pour lequel des binaires à jour sont plus faciles à trouver :

https://pdcurses.org/
https://sourceforge.net/projects/pdcurses/
https://github.com/wmcbrine/PDCurses
[Dal]
Messages postés
5163
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
10 juillet 2019
785 -
si tu ne sais pas comment faire pour installer une bibliothèque dans ton environnement Windows, tu peux suivre le tutoriel suivant, qui prend pour exemple l'installation de la bibliothèque libcurl pour une utilisation par Codeblocks avec la chaîne de compilation MinGW sous Windows:

https://www.commentcamarche.net/faq/35736-installer-sous-codeblocks-avec-mingw-une-bibliotheque-librairie-compilee
Commenter la réponse de [Dal]