Programme plus ou moins

Fermé
pizzaiolo77 Messages postés 4 Date d'inscription mercredi 19 septembre 2018 Statut Membre Dernière intervention 19 septembre 2018 - Modifié le 19 sept. 2018 à 14:41
Pinzou76 Messages postés 609 Date d'inscription dimanche 17 septembre 2017 Statut Membre Dernière intervention 25 février 2019 - 19 sept. 2018 à 15:12
Bonjour, voila je suis en cours d'apprentissage . Afin d'apprendre le codage ( en C) j'utilise le site openclassrooms . Donc mon problème est que je désire faire une demande au joueur si il veut rejouer et en fonction de sa réponse soit arrêter soit recommencer un parti . J'ai lu plusieurs réponse a mon problème mais aucunes n'as fonctionné , j'allais oublié je veux aussi lui dire au revoir si il ou elle ne veut plus jouer. voici mon programme :

#include <iostream>

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main ( int argc, char** argv )
{
int nombreMystere = 0, nombreEntre = 0, compteur = 0, rejouer = 1;
const int MAX = 100, MIN = 1;

// Génération du nombre aléatoire

srand(time(NULL));
nombreMystere = (rand() % (MAX - MIN + 1)) + MIN;

/* La boucle du programme. Elle se répète tant que l'utilisateur n'a pas trouvé le nombre mystère */

do
{
// On demande le nombre
printf("Quel est le nombre ? ");
scanf("%d", &nombreEntre);
compteur++;

// On compare le nombre entré avec le nombre mystère

if (nombreMystere > nombreEntre)
printf("C'est plus !\n\n");
else if (nombreMystere < nombreEntre)
printf("C'est moins !\n\n");
else
printf ("Bravo, vous avez trouve le nombre mystère en %d coups !!!\n\n",compteur);

} while (nombreEntre != nombreMystere);

/* a partir d'ici rien de fonctionne */

printf("voulez vous jouer a nouveau ? oui(1) non (0)\n");
scanf("%d",&rejouer);
system("pause");
{

}
while (rejouer!=0);

printf("Au revoir!!!");
system("pause");
return 0 ;
}


merci d'avance pour votre aide .

1 réponse

Pinzou76 Messages postés 609 Date d'inscription dimanche 17 septembre 2017 Statut Membre Dernière intervention 25 février 2019 190
Modifié le 19 sept. 2018 à 14:51
Bonjour, tu pourrais faire un autre do...while de la sorte:
do
{
    do
    {
    //Le code de ton jeu
    //Boucle qui s'effectue tant que la réponse est fausse
    }
    while (nombreEntre != nombreMystere); 
    printf("voulez vous jouer a nouveau ? oui(1) non (0)\n"); 
    scanf("%d",&rejouer); 
}
while(rejouer!=0);
//Et ici le message d'au revoir qui s'affichera quand l'utilisateur entrera 0


Bon courage

PS: Merci d'utiliser la coloration syntaxique la dernière fois pour être plus lisible :)
0
pizzaiolo77 Messages postés 4 Date d'inscription mercredi 19 septembre 2018 Statut Membre Dernière intervention 19 septembre 2018
19 sept. 2018 à 14:52
le premier "do " correspond a mon " do " du départ de mon code , ou il faut que je le mette deux fois ?
0
Pinzou76 Messages postés 609 Date d'inscription dimanche 17 septembre 2017 Statut Membre Dernière intervention 25 février 2019 190
19 sept. 2018 à 14:54
Il faut le mettre deux fois:
-Un do...while tant que l'utilisateur veut rejouer,
-Un autre à l'intérieur du précédent, celui que tu as déjà, tant que l'utilisateur a faux
0
pizzaiolo77 Messages postés 4 Date d'inscription mercredi 19 septembre 2018 Statut Membre Dernière intervention 19 septembre 2018
19 sept. 2018 à 14:57
ok je vais essayer merci
0
pizzaiolo77 Messages postés 4 Date d'inscription mercredi 19 septembre 2018 Statut Membre Dernière intervention 19 septembre 2018
19 sept. 2018 à 15:02


maintenant j'ai des erreur je suis vraiment nul
0
Pinzou76 Messages postés 609 Date d'inscription dimanche 17 septembre 2017 Statut Membre Dernière intervention 25 février 2019 190
Modifié le 19 sept. 2018 à 15:21
Ce sont juste des erreurs de syntaxe, c'est normal.
#include <iostream> 
#include <stdio.h> 
#include <stdlib.h> 
#include <time.h> 

int main ( int argc, char** argv ) 
{ 
int nombreMystere = 0, nombreEntre = 0, compteur = 0, rejouer = 1; 
const int MAX = 100, MIN = 1; 

srand(time(NULL)); 
nombreMystere = (rand() % (MAX - MIN + 1)) + MIN; 

do
{
    do 
    { 
        printf("Quel est le nombre ? "); 
        scanf("%d", &nombreEntre); 
        compteur++; 

        if (nombreMystere > nombreEntre) 
            printf("C'est plus !\n\n"); 
        else if (nombreMystere < nombreEntre) 
            printf("C'est moins !\n\n"); 
        else 
            printf ("Bravo, vous avez trouve le nombre mystère en %d coups !!!\n\n",compteur); 
    } 
    while (nombreEntre != nombreMystere); 

    printf("voulez vous jouer a nouveau ? oui(1) non (0)\n"); 
    scanf("%d",&rejouer); 
}
while (rejouer!=0); 

printf("Au revoir!!!"); 
return 0 ; 
} 

Essaie ce code, puis résoud les erreurs 1 par 1 en commençant par celle du haut (la première). Chaque fois que tu résouds une erreur, essaie de relancer le programme.

[EDIT] Le programme que je t'ai posté fonctionne, il faut juste enlever le
#include <iostream>
qui est une spécification du C++
0