Bonjour,
j'ai un petit problème dans un programme que je dois faire.
en fait l'exo c'était d'écrire un jeu de devinette ou l'ordinateur jouerais contre lui même.
-On entre une borne supérieur.
-Ensuite l'ordi fait un random rand()%borne; de 0 a cette borne supérieur:
il choisit ainsi un chiffre entre 0 et cette borne, et ce chiffre sera LE chiffre A DEVINER qui sera dans la variable random1.
-ensuite on entre dans une procédure nommé "test" dans laquel on a l'appel d'une fonction "essai", et un enchainement de "if" :
la fonction "essai" on va dire que c'est l'ordi proprement dit qui fait un random entre 0 et la borne saisie, et renvoie cette valeur dans la procédure "test" , dans une variable "var".
Ensuite les "if": si var < random1
afficher "le chiffre a deviner est plus grand"
si var > random1
afiicher "le chiffre a deviner est plu peti"
si var == random1
aficher " j'ai gagné!"
et donc normalement tant que var pas égale a random1(chiffre a deviner) la fonction "essai" doit refaire un random entre 0 et la borne sup, pour avoir de nouveau un autre chiffre que l'on testera de nouveau dans les "if".
Enfin voila, le problème c'est que l'ordi lorsqu'il fait un premier random, nou renvoie donc var, le problème c'est que dès ce premier random , il trouve directement le BON chiffre à deviner ... (qui est random1)
alors dans la fonction random (celui qui permet grace a une borne saisi) de choisir LE chiffre a deviner, j'ai écris la ligne de code comme ceci
int random(int x)
{
srand(int() time(null))
int rand1;
rand1=rand()%x; //x sera remplacé par "borne" saisi par l'utilisateur
return(rand);
}
et la deuxieme fonction "essai" qui permet a l'ordi de choisir un chiffre un chiffre (essai donc de deviner le chiffre) je l'ai écrit comme ceci
int essai(int y)
{
srand(int() time(null))
int rand2;
rand2=rand()%y; //y sera remplacé par "borne" saisi par l'utilisateur
return(rand2);
}
alors petit j'essai pour bien expliquer:
Affcihage a l'écran:
Saisir une borne: 10 (prenons par exemple 10 pour la borne sup) >>borne=10
//a ce niveau la fonction random(borne) est appelé >> borne en paramètre d'entré et return(rand1) , stocké dans random1
Un chiffre entre 0 et 10 a été choisi et je dois le deviner
//on fait un petit trace "le chiffre a deviner est: 5" (par exemple 5 est le chiffre a deviner)
essai 1:
//ici la fonction essai(borne) est appelé >> borne en parametre d'entré, la fonction essai simule l'ordinateur qui essai de deviner un chiffre
il affiche alors 5
Je gagne, le chiffre a deviner était bien 5.
voilà en gros.Moi j'ai juste un epetite idée, ne serais ce pas un problème de mémoire ?... au niveau du random ... je comprend pas très bien en fait. comment ça se fait que mon deuxieme random dans la fonction "essai()" trouve directement la même valeur que le premier random dans la fonction random()...?
voilà merci d'avance.
-=Tinou=-