Probleme boucle débutante :) [Résolu]

Signaler
Messages postés
3
Date d'inscription
jeudi 15 avril 2021
Statut
Membre
Dernière intervention
15 avril 2021
-
Messages postés
3839
Date d'inscription
dimanche 12 décembre 2004
Statut
Modérateur
Dernière intervention
15 avril 2021
-
Bonjour à tous :)
Voilà, je débute dans le codage, et j'ai un petit soucis que je ne sais comment regler..
Mon projet est un petit jeu console :

1-L'ordinateur tire au sort un nombre entre 1 et 100.
2- Il vous demande de deviner le nombre. Vous entrez donc un nombre entre 1 et 100.
3- L'ordinateur compare le nombre que vous avez entré avec le nombre « mystère » qu'il a tiré au sort. Il vous dit si le nombre mystère est supérieur ou inférieur à celui que vous avez entré.
4- Puis l'ordinateur vous redemande le nombre.
5-Et il vous indique si le nombre mystère est supérieur ou inférieur.
6-Et ainsi de suite, jusqu'à ce que vous trouviez le nombre mystère.

Alors j'y suis plus ou moins parvenue .. sauf que parfois .... pas tout le temps , lorsque je rentre un chiffre, mon pc indique à la fois que le chiffre es trop grand ET trop petit.

Je vous envoi les images ,merci d'avance pour votre aide ! Charlotte

7 réponses

Messages postés
558
Date d'inscription
dimanche 7 février 2016
Statut
Membre
Dernière intervention
16 mai 2021
5
Bonjour,

à chaque fois que tu écris
(rand() % (MAX - MIN + 1)) + MIN
, tu recalcules un nouveau nombre. Tu compares donc si la saisie est inférieure à un nombre aléatoire, supérieure à un autre nombre aléatoire ou bien égale à un troisième nombre aléatoire, et si ça n'est pas égal à un quatrième nombre aléatoire tu recommences.
Il te faut stocker une bonne fois cette expression dans une variable
nombre_a_trouver
, demander un
nombre_saisi 
et toujours comparer ces deux variables.
Messages postés
15950
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
16 mai 2021
546
Bonsoir

pour que l'on puisse essayer de t'aider, il faut poster ton code comme décrit là
https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
Messages postés
3
Date d'inscription
jeudi 15 avril 2021
Statut
Membre
Dernière intervention
15 avril 2021

Ok merci !!!
Voici mon code !

Et Trois autres problemes dont je viens de m'aperçevoir :
1- parfois le pc n'affiche pas du tout le fait que le nombre soit trop grand ou trop petit ( voir photo )
2- Lorsque je trouve le nombre exact, l'ordinateur affiche : la solution est un chiffre plus petit ET Bravo vous avez trouvé la bonne réponse
3- Parfois le nombre est ;un coup trop grand,
un coup trop petit ( voir photo )



( voir photo )

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

    int main ( int argc, char** argv )
{
    // ****************DEBUT DU JEU*****************
    printf("Bienvenue dans mon petit jeu\n\n");
// ******************CI DESSOUS TOUTES LES DECLARATIONS VARIABLES   **************
    int nombreMystere = 0;
    const int MAX = 100, MIN = 1;
    srand(time(NULL));
    nombreMystere = (rand() % (MAX - MIN + 1)) + MIN;
    // ***************CI DESSOUS LES COMMANDES *****************

    printf("Tu vas devoir trouver le nombre mystere compris entre 1 et 100!\n\n\n\n\nC'est parti!\n\n\n\n");

// ***************************CI DESSOUS LA BOUCLE****************************
    while (nombreMystere = (rand() % (MAX - MIN + 1)) + MIN )
{
    printf("Entrez le nombre mystere\n\n");
    scanf("%d", &nombreMystere);

    if (nombreMystere < (rand() % (MAX - MIN + 1)) + MIN )
{   printf("La solution est un chiffre plus grand!\n\n");
}
    if (nombreMystere > (rand() % (MAX - MIN + 1)) + MIN )
{   printf("La solution est un chiffre plus petit!\n\n");
}
    if ( nombreMystere == (rand() % (MAX - MIN + 1)) + MIN )
{   printf(" WOW ! Tu es trop fort!");

return 0;
}
}
}

Messages postés
3
Date d'inscription
jeudi 15 avril 2021
Statut
Membre
Dernière intervention
15 avril 2021

Ha super!!! merci beaucoup !! Je vais essayer ça tout de suite ! merci ! :)
Messages postés
15950
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
16 mai 2021
546
OK

Dans tes tests, à quoi compares tu le nombre saisi par l'utilisateur?
Messages postés
15950
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
16 mai 2021
546
Ha je n'avais pas vu que Dalfab t'avais donné la solution
Messages postés
3839
Date d'inscription
dimanche 12 décembre 2004
Statut
Modérateur
Dernière intervention
15 avril 2021
121
Bonjour !

Il y a clairement plusieurs petits soucis dans ton code, qu'on va essayer de décortiquer:
  • Ton nombre mystère est calculé aléatoirement une seule fois au démarrage de ton programme, et stocké dans une variable. Il ne doit plus "bouger" après cela.
  • Il te faut une variable pour stocker ce que l'utilisateur choisi (quand on le demande via scanf). Tu vois bien qu'utiliser "nombreMystère" pour tout est problématique ;). Il te faut une autre variable.
  • Attention = (affectation) et == (comparaison) ce n'est pas la même chose ! Il y a une petite erreur à ce niveau là.