Bon voila c'est encore moi
Toujours en train de m'entrainer en C/C++ sur des jeux (bidons je vous l'accorde )
Donc je vous montre ce que j'ai fait:
[cpp]int main ()
{
long de1 = 0, de2 = 0, de3 = 0, essais = 0, victoire = 0;
char lance = 0;
char restart = 0;
printf ("JEU DU 421 \n");
do //Début de boucle restart
{
for (essais = 1, victoire =0 ; essais < 3 || !victoire ; essais ++) //Boucle du jeu: lancement des dès + test
{
do //Lancement des dés
{
printf ("Appuyez sur L, puis entree pour lancer les des: ");
scanf ("%c", &lance);
} while ((lance != 'L') && (lance !='l')); //Verifie la touche préssée
srand(time(NULL)); //Lancement des dés
de1 = (rand() % (6 - 1 + 1)) + 1;
de2 = (rand() % (6 - 1 + 1)) + 1;
de3 = (rand() % (6 - 1 + 1)) + 1;
//Affichage valeur des dés
printf ("\n Vos des on fait %ld, %ld, %ld,", de1, de2, de3);
//Verif 421 + resultat
if ((de1 = (4 || 2 || 1)) && (de2 = (4 || 2 || 1)) && (de3 = (4 || 2 || 1)) && (de1 != de2 != de3))
{
printf ("Bravo vous avez gagnez en %ld essais !\n", essais);
victoire = 1;
printf ("Victoire vaut %ld\nEssais vaut %ld\n", victoire, essais); //TEST TEMPORAIRE
}
else
{
printf ("Desole vous n'avez pas fait 421, mais vous pouvez relancer les des\n");
}
} //FIN DU JEU
printf ("Le jeu est fini\nSi vous voulez rejouer appuyez sur O, puis sur entree.\n"); //Rejouer
scanf ("%c", &restart); //Saisie restart
} while (restart == 'O'); //Fin de boucle restart
return 0;
}[/cpp]
1/Le texte à la ligne 15 s'affiche une fois au début et après il s'affiche toujours
deux fois (sauf quand on ne saisit rien...)
2/La boucle for fonctionne comme elle veut et je ne sais pas pourquoi (encore ses
saletés de conditions )...
3/La condition if fait toujours gagner.
4/La génération des dés n'est pas terrible car elle fonctionne avec le temps du
systeme (si on lance deux fois à la meme seconde les resultats sont les memes...)
4/Et enfin le dernier scanf ne fonctionne pas (le jeu se relance direcetement)
Bon voila, j'ai quand meme assez reflechis à tout ca, et j'aurais bien besoin de votre
aide
Merci les gens
Toujours en train de m'entrainer en C/C++ sur des jeux (bidons je vous l'accorde )
Donc je vous montre ce que j'ai fait:
[cpp]int main ()
{
long de1 = 0, de2 = 0, de3 = 0, essais = 0, victoire = 0;
char lance = 0;
char restart = 0;
printf ("JEU DU 421 \n");
do //Début de boucle restart
{
for (essais = 1, victoire =0 ; essais < 3 || !victoire ; essais ++) //Boucle du jeu: lancement des dès + test
{
do //Lancement des dés
{
printf ("Appuyez sur L, puis entree pour lancer les des: ");
scanf ("%c", &lance);
} while ((lance != 'L') && (lance !='l')); //Verifie la touche préssée
srand(time(NULL)); //Lancement des dés
de1 = (rand() % (6 - 1 + 1)) + 1;
de2 = (rand() % (6 - 1 + 1)) + 1;
de3 = (rand() % (6 - 1 + 1)) + 1;
//Affichage valeur des dés
printf ("\n Vos des on fait %ld, %ld, %ld,", de1, de2, de3);
//Verif 421 + resultat
if ((de1 = (4 || 2 || 1)) && (de2 = (4 || 2 || 1)) && (de3 = (4 || 2 || 1)) && (de1 != de2 != de3))
{
printf ("Bravo vous avez gagnez en %ld essais !\n", essais);
victoire = 1;
printf ("Victoire vaut %ld\nEssais vaut %ld\n", victoire, essais); //TEST TEMPORAIRE
}
else
{
printf ("Desole vous n'avez pas fait 421, mais vous pouvez relancer les des\n");
}
} //FIN DU JEU
printf ("Le jeu est fini\nSi vous voulez rejouer appuyez sur O, puis sur entree.\n"); //Rejouer
scanf ("%c", &restart); //Saisie restart
} while (restart == 'O'); //Fin de boucle restart
return 0;
}[/cpp]
1/Le texte à la ligne 15 s'affiche une fois au début et après il s'affiche toujours
deux fois (sauf quand on ne saisit rien...)
2/La boucle for fonctionne comme elle veut et je ne sais pas pourquoi (encore ses
saletés de conditions )...
3/La condition if fait toujours gagner.
4/La génération des dés n'est pas terrible car elle fonctionne avec le temps du
systeme (si on lance deux fois à la meme seconde les resultats sont les memes...)
4/Et enfin le dernier scanf ne fonctionne pas (le jeu se relance direcetement)
Bon voila, j'ai quand meme assez reflechis à tout ca, et j'aurais bien besoin de votre
aide
Merci les gens