[C++] 'cin' pendant 't' secondes
Forum Programmation : [C++] 'cin' pendant 't' secondes
Voilà mon problème :
Je dois réaliser un TETRIS pour un projet et je suis bloqué car je ne sais pas comment offrir au joueur la possibilité de presser un touche tout en laissant le jeu suivre son cours...
Je ne connais que "cin" pour demander une entrée, mais "cin" met le programme en pause...
Dans mon programme je mets une boucle "for" avec une pause dedans, et je voudrais que le joueur puisse presser une touche lors de chaque boucle...
Je suis sur qu'il doit exister une commande bien spécifique pour ça mais bon, je ne connais vraiment pas encore grand chose au C++
Merci d'avance pour l'aide.
1. oublie les cin et les cout. Là tu fais un vrai programme
2. quelles API et bibliothèques utilises-tu ?
81F900FA750230EDBADA03ECA80875FBECA808
74FBE4603C0175DFB80300CD10B8004CCD21
Répondre à CRicky
Les oublier? Pourquoi? Mon programme en est rempli...
API, c'est quoi ça? DevC++ (4.9.9.2), ça répond à la question?
Les biblio : windows.h (pour la fonction sleep() ) et iostream (car on nous a dit de toujours le mettre...)
| Citation : API, c'est quoi ça? |
http://fr.wikipedia.org/wiki/Inter [...] grammation
Ca te permet d'utiliser les fonctions de bibliothèques déja créées (graphismes, sons, ... et gestion des entrées/sorties!)
De toute façon, tu vas être obligé d'en utiliser une. Tu ne peux pas faire un programme (jeu) serieux en mode console! Ou alors un de ces jeux d'aventure en mode texte old-style...
Je te conseillerais d'utiliser SDL:
http://fr.wikipedia.org/wiki/Simple_DirectMedia_Layer
Au pire, si tu es sous windows, que tu n'en as rien à faire de la portabilité de ton programme, que tu te fous de la convivialité du jeu, tu peux peut être regarder de ce coté:
http://en.wikipedia.org/wiki/Conio.h
int kbhit(void);
int getch(void);
Un truc du genre:
if(kbhit())
{
c=getch()
//Après, tu te démerdes avec le caractère,
//pis t'obliges l'utilisateur à jouer avec qsdz,
//en esperant qu'il ait un clavier azerty...)
}
EDIT: DevC++ c'est un IDE (Integrated Development Environment), c'est à dire une interface+un compilateur+quelques fonctionnalités "qui vont bien".
| Citation : Les oublier? Pourquoi? Mon programme en est rempli... |
C'est pas fait pour les jeux...
Message édité par Rakipu le 10-04-2007 à 20:13:32
Merci beaucoup de toutes ces réponses, elles me seront bien utiles.
Sinon, juste pour apporter des précisions, en effet nous devons tout créer en console et les pièces devront être faites de caractères... les touches employées nous sont aussi imposées...
Encore merci pour les explications les liens et tout ça.
EDIT : je viens de testé, c'est nikel!
/////////////////////////////// (sec : int , press : bool , presss : char)
for(sec=0;sec<500;sec+=1)
{
press=kbhit();
if(press==true)
{
presss=getch();
putch(presss);
}
Sleep(1);
}
///////////////////////////////
Avec ça, il fait exactement ce que je veux, le joueur peut à tout moment presser un touche, mais quoiqu'il décide, le programme continue de fonctionner normalement et sans arrêt.
Un grand merci
Message édité par CrazyWizard le 11-04-2007 à 10:56:31
Franchement, à ta place, je ferais un truc graphique avec des dessins pas beaux, c'est probablement plus simple et plus agréable à utiliser
81F900FA750230EDBADA03ECA80875FBECA808
74FBE4603C0175DFB80300CD10B8004CCD21
Répondre à CRicky
Quel immonde anti-pédagogue obligerait ses élèves à faire un truc hideux, non portable, et en mode console en plus?
Y'a des coups de pied qui se perdent...
[avis_perso]
le but de l'exercice à mon avis n'est pas d'apprendre tel ou tel API, mais à se familiariser avec la programmation, à mon avis, c'est plus l'idée et l'algorithme qui va être noté (si note il ya)
[/avis_perso]
maintenant c'est clair qu'avec des images, c'est meilleur
En effet, ce projet a pour but de nous tester en ce qui concerne les conditions, les boucles, les fonctions, la syntaxes. Je crois que c'est tout...
Merci pour les réponses
Il y a 2074 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici.

CRicky