Affichage durant un temps donné

Signaler
Messages postés
13
Date d'inscription
jeudi 27 avril 2006
Statut
Membre
Dernière intervention
31 mai 2006
-
Messages postés
694
Date d'inscription
lundi 5 décembre 2005
Statut
Membre
Dernière intervention
8 janvier 2014
-
Voilà je suis en train de réaliser un jeu memory (le jeu avec les paires qu'il faut retourner), et j'aimerais savoir comment faire pour afficher un tableau pendant un certain temps puis le faire disparaître?
Si quelqu'un a la solution j'accepte son aide avec grand plaisir.
Merci d'avance   

P.S. : programmation en C++ avec emacs sous LINUX

Citron pas bon!!!!

11 réponses

Messages postés
196
Date d'inscription
mercredi 6 août 2003
Statut
Membre
Dernière intervention
1 mai 2009
2
Salut. Tu peux utiliser la fonction API GetTickCount. Il s'agit d'une fonction s'exécutant dans une boucle. A chaque appel de GetTickCount, il est renvoyé le temps passé depuis le début du premier appel GetTickCount en milliseconde.
Exemple :
if GetTickCount - DernierTemps >= 1000
{
   DernierTemps = GetTickCount( ) ;
   Ici tu place ton code permettant à l'utilisateur d'effectuer telle ou telle tache dans le tableau.
}

Tu peux également créer ,ce qui serait nettement plus clair ,cette même fonction dans un Thread ce qui éviterait de la mélanger à la programmation des actions de l'utilisateur dans le tableau du jeu, et ainsi créer un évènement faisant changer l'aparition de ton tableau.

A+
LaPatoshe
Messages postés
746
Date d'inscription
vendredi 17 juin 2005
Statut
Membre
Dernière intervention
23 mai 2007
9
Sous linux je ne suis pas sur...
Messages postés
196
Date d'inscription
mercredi 6 août 2003
Statut
Membre
Dernière intervention
1 mai 2009
2
Désolé, je n'avais pas remarqué le P.S. Bon courage

LaPatoshe
Messages postés
694
Date d'inscription
lundi 5 décembre 2005
Statut
Membre
Dernière intervention
8 janvier 2014
15
Tu peux faire une temporisation de deux manières :

- Utiliser la primitive signal() ou plutôt sigaction(). La dernière est plus sûre.
- Utiliser la primitive setitimer().

Les deux en utilisant le signal SIGALRM, par exemple.
Messages postés
13
Date d'inscription
jeudi 27 avril 2006
Statut
Membre
Dernière intervention
31 mai 2006
1
Excuse moi mais j'ai pas trop compris, je ne sais pas ce qu'est une primitive ni comment l'utiliser si tu pouvais m'expliquer un peu plus je t'en serais reconnaissant.  









Citron pas bon!!!!
Messages postés
694
Date d'inscription
lundi 5 décembre 2005
Statut
Membre
Dernière intervention
8 janvier 2014
15
Bonjour,

Une primitive c'est un synonyme pour appel système. Une fonction livrée avec le système d'exploitation qui permet de demander au noyau de réaliser une opération particulière, comme démarrer ou terminer un processus.
Après les primitives, on trouve les fonctions de haut niveau. C'est à dire des fonctions système qui réalisent des opérations à l'aide de plusieurs primitives.
Puis après les fonctions de haut niveau ce sont les fonction utilisateurs. Qui réalisent des opérations par l'intermédiaire des primitives et des fonctions de haut niveau.

_exit() est une primitive, qui réalise une terminaison sans procédure de nettoyage
exit() une fonction de haut niveau qui appelle la primitive _exit() et fait le nettoyage
MonExit() { exit().. } une fonction utilisateur.

Est-ce plus clair ?
Messages postés
13
Date d'inscription
jeudi 27 avril 2006
Statut
Membre
Dernière intervention
31 mai 2006
1
Oui c'est plus clair merci mais
comment dois-je faire pour selectionner la temporisation souhaitée et
surtout où dois-je la positionner dans mon code (avant ou après
l'affichage?) ?









Citron pas bon!!!!
Messages postés
694
Date d'inscription
lundi 5 décembre 2005
Statut
Membre
Dernière intervention
8 janvier 2014
15
Bonjour,

Je viens de publier un petit programme ici pour illustrer un autre sujet mais il contient tout ce que tu cherches sur la mise en place d'une temporisation.
Si ça peut t'être utile.
(Et non je ne ferais pas ton programme à ta place..).
Bonne programmation !
Messages postés
13
Date d'inscription
jeudi 27 avril 2006
Statut
Membre
Dernière intervention
31 mai 2006
1
En aucun cas je te demandais de faire mon
programme c'était juste un détail de programmation, mais merci quand
même pour ton exemple je vais essayer de faire un TIMER un peu comme
toi.


Est-ce-que tu connais l'équivalent de system("PAUSE"); sous LINUX parce que je ne sais pas comment faire pour geler l'écran.


Merci d'avance et merci pour tout tes conseils!!!   






Citron pas bon!!!!
Messages postés
13
Date d'inscription
jeudi 27 avril 2006
Statut
Membre
Dernière intervention
31 mai 2006
1
C'est bon j'ai réussi à faire ce que je voulais avec la fonction sleep ça marche très bien.

Merci pour toute l'aide que tu m'as donné!!!  








Citron pas bon!!!!
Messages postés
694
Date d'inscription
lundi 5 décembre 2005
Statut
Membre
Dernière intervention
8 janvier 2014
15
De rien

sinon
man 2 pause
man 2 nanosleep

Tu as les commandes man, info et apropos qui peuvent répondre à pas mal de tes questions.