Probleme de sortie de boucle avec dev c++ ( en c++ )
Dernière réponse : dans Programmation
Bonjours, j'essaye de faire une simulation de jeux de combat simple: deux adversaire ( jouer et ordinateur ) lance chaqu'un leur tour un dés, celui qui fait le plus petit score perd des points de vie.
La boucle est sensée s'arreter des que l'un des adversaires n'a plus de points de vie, cependant j'utilise dev c++ et mon programme se ferme dès qu'il atteint la ligne "break", j'ai essayer de mettre des pauses un peut partout mais sa ne resoud pas le probleme.
voici le code :
La boucle est sensée s'arreter des que l'un des adversaires n'a plus de points de vie, cependant j'utilise dev c++ et mon programme se ferme dès qu'il atteint la ligne "break", j'ai essayer de mettre des pauses un peut partout mais sa ne resoud pas le probleme.
voici le code :
#include <time.h>
#include <stdlib.h>
#include <iostream.h>
#include <stdio.h>
int main()
{
int pv =30;
int pvc=10;
char combat;
cout << " Combat ! \n Appuyer sur 1 pour lancer le des ";
cin >> combat;
if (combat == 1)
system (" pause" );
while (pv>0)
{
srand((unsigned) time(NULL));
int a = rand()%6+1;
cout << a;
cout <<". \n";
system (" pause" );
int b = rand()%6+1;
cout << "La créature fait un score de ";
cout << b;
cout << ". \n";
if (a<b)
{
pv -= 2;
}
if (b<a)
{
pvc -= 2;
}
cout << "il vous reste ";
cout << pv;
cout << " points de vie \n";
cout << "il reste a la creature ";
cout << pvc;
cout << " points de vie \n";
system ( "pause" );
if (pvc == 0); //si j'enlève cette partie là, la boucle marche mais le combat ne s'arrete pas quand l'ordinateur perd.
{
break;
system ( "pause" );
}
}
cout << " vous avez gagné ce combat!";
system ( "pause" );
}
Autres pages sur : probleme sortie boucle dev
Lassé par la pub ? Créez un compte
pagu: http://fr.wikipedia.org/wiki/Indentation
C'est super important. Pour toi, qui débute, pour celui qui te relit (débogage, audit, correcteur, prof, maintenance), pour montrer du respect envers ceux qui veulent bien t'aider.
Aucun développeur, même le plus aguerri, n'oublie d'indenter son code.
De nouveau, édite ton premier message pour présenter ton code correctement indenté. (C'est pour ça que nous imposons la balise [code], c'est pour que l'indentation soit respectée à l'affichage).
Il n'est pas impossible que la solution te saute alors aux yeux
C'est super important. Pour toi, qui débute, pour celui qui te relit (débogage, audit, correcteur, prof, maintenance), pour montrer du respect envers ceux qui veulent bien t'aider.
Aucun développeur, même le plus aguerri, n'oublie d'indenter son code.
De nouveau, édite ton premier message pour présenter ton code correctement indenté. (C'est pour ça que nous imposons la balise [code], c'est pour que l'indentation soit respectée à l'affichage).
Il n'est pas impossible que la solution te saute alors aux yeux
d'accord.
Bon je galere avec block, quand je compile mon programme et que je le lance sa me met juste Hello World ( aucune autre fenetre n'est ouverte, si j'essaye de le lancer à partir du dossier ou il est ( en lançant le .exe ) sa ferme directement le programme sans que j'ai le temps de rien voir...
Bon je galere avec block, quand je compile mon programme et que je le lance sa me met juste Hello World ( aucune autre fenetre n'est ouverte, si j'essaye de le lancer à partir du dossier ou il est ( en lançant le .exe ) sa ferme directement le programme sans que j'ai le temps de rien voir...
Perso j'utilise visual c++ qui a un debugger tres puissant !
Sinon en se qui concerne ton probleme, j'ai regardé rapidemment le code ca peut pas marcher avec le break. Il y a un probleme dans le code
Evite ce genre de sortie de boucle
.Soit un peu patient au debut c'est pas facile et c'est en faisant des erreurs qu'on apprend
Sinon en se qui concerne ton probleme, j'ai regardé rapidemment le code ca peut pas marcher avec le break. Il y a un probleme dans le code
Evite ce genre de sortie de boucle
.Soit un peu patient au debut c'est pas facile et c'est en faisant des erreurs qu'on apprend
moué voici mon nouveau code et j'ai toujours le meme probleme ( la boucle ne marche pas )
#include <time.h>
#include <stdlib.h>
#include <iostream.h>
#include <stdio.h>
int main()
{
int pv =30;
int pvc=10;
char combat;
cout << " Combat ! \n Appuyer sur 1 pour lancer le des ";
cin >> combat;
if (combat == 1)
system (" pause");
while (pv>0 || pvc >0)
{
srand((unsigned) time(NULL));
int a = rand()%6+1;
cout << a;
cout <<". \n";
system (" pause");
int b = rand()%6+1;
cout << "La creature fait un score de ";
cout << b;
cout << ". \n";
if (a<b)
{
pv -= 2;
}
if (b<a)
{
pvc -= 2;
}
cout << "il vous reste ";
cout << pv;
cout << " points de vie \n";
cout << "il reste a la creature ";
cout << pvc;
cout << " points de vie \n";
system ( "pause");
}
cout << " vous avez gagné ce combat!";
system ( "pause");
}
ok ben j'ai un autre probleme en faite, toute ce que je rajoute ou modifie ne change rien... si je met tapez 2 au lieu de 1 dans mon programme je verais toujours "tapez 1".
Bon j'ai lancé une nouvelle fiche et j'ai refait ma boucle avec Break et sa marche, je comprend pas trop pourquoi mais bon. Merci pour l'aide
Bon j'ai lancé une nouvelle fiche et j'ai refait ma boucle avec Break et sa marche, je comprend pas trop pourquoi mais bon. Merci pour l'aide
Bon j'ai pas compris ce que tu veux faire mais cela ne fait rien.
1°) vire les system pause.
2°) Ca ne sert à rien de faire un "system pause" après un break car tu n'exécute pas le code après un break.
3°) De plus tu as fait une erreur de débutant qui arrive même à ceux qui programme depuis de longues années. Tu as mis un ';' à la ligne 46 de ton programme d'origine.
if (pvc == 0) ; //si j'enlève cette partie là, la boucle marche mais le combat ne s'arrete pas quand l'ordinateur perd.
Donc le test est foireux (tu exécute le code entre ) et ; soit rien, tu poursuits avec le code entre accolade et tu fais le break qui te sort de ta boucle.
voila, CQFD
1°) vire les system pause.
2°) Ca ne sert à rien de faire un "system pause" après un break car tu n'exécute pas le code après un break.
3°) De plus tu as fait une erreur de débutant qui arrive même à ceux qui programme depuis de longues années. Tu as mis un ';' à la ligne 46 de ton programme d'origine.
if (pvc == 0) ; //si j'enlève cette partie là, la boucle marche mais le combat ne s'arrete pas quand l'ordinateur perd.
Donc le test est foireux (tu exécute le code entre ) et ; soit rien, tu poursuits avec le code entre accolade et tu fais le break qui te sort de ta boucle.
voila, CQFD
Lassé par la pub ? Créez un compte
- Contenus similaires :
Tags :
- ForumProbleme de son sortie ordinateur
- ForumProbleme sortie son hp
- articlesProbleme sortie hdmi
- ForumProbleme sortie tv
- ForumProbleme son sortie jack
- ForumProbleme de son avec une sortie dvi probleme de son avec une sortie dvi
- articlesProbleme sortie optique carte son
- ForumProbleme sortie veille mac
- ForumProbleme sortie video nvidia
- ForumProbleme sortie tv sur eeepc
- Voir plus
JAMAIS !