Faire un Chrono timout

codrux Messages postés 48 Date d'inscription   Statut Membre Dernière intervention   -  
[Dal] Messages postés 6205 Date d'inscription   Statut Contributeur Dernière intervention   -
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
A voir également:

2 réponses

[Dal] Messages postés 6205 Date d'inscription   Statut Contributeur Dernière intervention   1 105
 
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
1
[Dal] Messages postés 6205 Date d'inscription   Statut Contributeur Dernière intervention   1 105
 
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
0
[Dal] Messages postés 6205 Date d'inscription   Statut Contributeur Dernière intervention   1 105
 
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://forums.commentcamarche.net/forum/affich-37594493-codeblocks-installer-une-bibliotheque-librairie
0
[Dal] Messages postés 6205 Date d'inscription   Statut Contributeur Dernière intervention   1 105
 
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
0
codrux Messages postés 48 Date d'inscription   Statut Membre Dernière intervention   20
 
Bonjour dal ,

Merci pour ta reponse . Alors oui de preference portable . Apres une option windows ne me derangerai pas nn plus
0
[Dal] Messages postés 6205 Date d'inscription   Statut Contributeur Dernière intervention   1 105
 
est-ce un programme console ou avec une interface graphique Windows ?
0
codrux Messages postés 48 Date d'inscription   Statut Membre Dernière intervention   20
 
nn nn c'est un programme console
0