Jeux "Le Juste Prix"

Résolu
HoniiR
Messages postés
32
Date d'inscription
mardi 1 avril 2014
Statut
Membre
Dernière intervention
14 août 2015
- Modifié par BunoCS le 1/04/2014 à 11:23
HoniiR
Messages postés
32
Date d'inscription
mardi 1 avril 2014
Statut
Membre
Dernière intervention
14 août 2015
- 3 avril 2014 à 11:37
Bonjour à tous.

Je souhaite programmer un jeu en C (en console) et j'ai un souci que je n'arrive pas à résoudre.
Voici mon Code Source :

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


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

{
        printf(" Menu de selection de la difficulte :\n          1. Facile (de 0 a 100\n          2. Medium (de 0 a 500)\n          3. Dificil (de 0 a 1000)\n          4. Libre");
        printf("\n \n Votre choix ?");
        scanf("%d", choixDifficulte);

        if (choixDifficulte != 1)
         {
             MAX = 100;
         }
        else if (choixDifficulte != 2)
            {
                MAX = 500;

            }
         else if (choixDifficulte != 3)
         {
             MAX = 1000;
         }
         else
         {
             printf("Quelle est votre nombre maximum");
             scanf(" %d ?", MAX);
             printf(" Nombre maximum : %d", MAX);
         }


    // 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("\nQuel est le nombre ? \n ");
        scanf("%d", &nombreEntre);
        compteur = compteur + 1;
        // On compare le nombre entré avec le nombre mystère

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

}
}


En espérant que vous trouverez la solution à mon problème merci d'avance §
A voir également:

12 réponses

Twinuts
Messages postés
5371
Date d'inscription
dimanche 4 mai 2003
Statut
Modérateur
Dernière intervention
1 avril 2022
112
2 avril 2014 à 09:31
Salut,

contrairement à printf il faut passer une adresse à scanf...
remplace
scanf("%d", choixDifficulte);
par
scanf("%d", &choixDifficulte);

idem pour:
scanf(" %d ?", MAX); qui est à remplacer par scanf(" %d ?", &MAX);
3
NHenry
Messages postés
14926
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
16 mai 2022
162
1 avril 2014 à 12:32
"j'ai un souci que je n'arrive pas à résoudre"
Quel souci ?
1
HoniiR
Messages postés
32
Date d'inscription
mardi 1 avril 2014
Statut
Membre
Dernière intervention
14 août 2015
4
Modifié par HoniiR le 1/04/2014 à 14:14
Eh bien après le choix du niveau Windows me demande si je veut envoyer un rapport d'erreur et la console se ferme sans que je puisse jouer.
Je peut pas en dire plus pour l'instant je suis en cours et je n' ai pas le logiciel pour re-tester; Je ferais peut être une prise de vue plus tard.
1
HoniiR
Messages postés
32
Date d'inscription
mardi 1 avril 2014
Statut
Membre
Dernière intervention
14 août 2015
4
2 avril 2014 à 14:08
Merci mon problème est résolu en effet il fallait mettre un & devant la variable ( J' y pensais plus , et sa fait pas longtemps que je re-programme)
1

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
HoniiR
Messages postés
32
Date d'inscription
mardi 1 avril 2014
Statut
Membre
Dernière intervention
14 août 2015
4
Modifié par HoniiR le 2/04/2014 à 17:29
J'aurais besoin d'aide car j'ai piochée la formule de random et elle n'as pas l' aire de fonvtionée en mofifiant le nombre max et, autre problème quand je tape 4 au choix de difficultée l' étape est zapée et le nombre max à l' air de toujours être cent.


Code source actuel :
#include <stdio.h>
#include <stdlib.h>
#include <time.h>


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

{
printf(" Menu de selection de la difficulte :\n 1. Facile (de 0 a 100\n 2. Medium (de 0 a 500)\n 3. Dificil (de 0 a 1000)\n 4. Libre");
printf("\n \n Votre choix ?");
scanf("%d", &choixDifficulte);

if (choixDifficulte != 1)
{
MAX = 100;
}
else if (choixDifficulte != 2)
{
MAX = 500;

}
else if (choixDifficulte != 3)
{
MAX = 1000;
}
else if (choixDifficulte != 4)
{
printf("Quelle est votre nombre maximum");
scanf(" %d ?", &MAX);
printf(" Nombre maximum : %d", MAX);
}
}

// 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("\nQuel est le nombre ? \n ");
scanf("%d", &nombreEntre);
compteur = compteur + 1;
// On compare le nombre entré avec le nombre mystère

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

}
1
Twinuts
Messages postés
5371
Date d'inscription
dimanche 4 mai 2003
Statut
Modérateur
Dernière intervention
1 avril 2022
112
Modifié par Twinuts le 2/04/2014 à 20:09
Salut,

Soit tu changes ton if/elseif parce que si choixDifficulte=4 c'est toujours différent de 1... donc MAX=100
Soit tu remplaces par un switch.

switch(choixDifficulte) {
case 1: MAX = 100; break;
case 2: MAX = 500; break;
case 3: MAX = 1000; break;
case 4:
printf("Quelle est votre nombre maximum");
scanf(" %d ?", &MAX);
printf(" Nombre maximum : %d", MAX);
break;
default: printf("Invalid value!\n"); exit(1);
}
--
Dev addict
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."
1
HoniiR
Messages postés
32
Date d'inscription
mardi 1 avril 2014
Statut
Membre
Dernière intervention
14 août 2015
4
2 avril 2014 à 19:09
Salut j' ai appris le DEBUT du C# avec un livre il me semble avoir vu ce que tu dit mais j' avais arrété un moment ducoup je comprend pas bien comment le faire fonctionner :( ...
1
Twinuts
Messages postés
5371
Date d'inscription
dimanche 4 mai 2003
Statut
Modérateur
Dernière intervention
1 avril 2022
112
2 avril 2014 à 20:14
Salut,

Je ne comprend pas trop pourquoi faire référence à de C# ici... bref:


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


int main(int argc, char** argv) {
int compteur = 0, choixDifficulte = 0;
int nombreMystere = 0, nombreEntre = 0, max = 0;
const int min = 1;


printf("Menu de selection de la difficulte :\n" \
"\t1. Facile (de 0 a 100\n\t2. Medium (de 0 a 500)\n" \
"\t3. Dificile (de 0 a 1000)\n\t4. Libre\n");
printf("\n\nVotre choix ? ");
scanf("%d", &choixDifficulte);

switch(choixDifficulte) {
case 1: max = 100; break;
case 2: max = 500; break;
case 3: max = 1000; break;
case 4:
printf("Quelle est votre nombre maximum ? ");
scanf("%d", &max);
printf("Nombre maximum : %d", max);
break;
default:
fprintf(stderr, "Choix invalide !\n");
exit(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("\nQuel est le nombre ?\n");
scanf("%d", &nombreEntre);
compteur = compteur + 1;
// On compare le nombre entré avec le nombre mystère

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

1
HoniiR
Messages postés
32
Date d'inscription
mardi 1 avril 2014
Statut
Membre
Dernière intervention
14 août 2015
4
Modifié par HoniiR le 2/04/2014 à 21:31
Je confond souvent les deux languages =)
0
HoniiR
Messages postés
32
Date d'inscription
mardi 1 avril 2014
Statut
Membre
Dernière intervention
14 août 2015
4
3 avril 2014 à 09:36
Je souhaiterai intégré un timer pour le temp que j'ai mis à deviner le nombre mystère est-ce possibe si oui comment ?

J' ai aussi fait une boucle do/while pour demander un relancement ou un arrêt du programmes .
0
Twinuts
Messages postés
5371
Date d'inscription
dimanche 4 mai 2003
Statut
Modérateur
Dernière intervention
1 avril 2022
112
3 avril 2014 à 11:09
Salut,

oui c'est possible, cela dit merci de bien vouloir ouvrir un autre sujet sur le forum.
0
HoniiR
Messages postés
32
Date d'inscription
mardi 1 avril 2014
Statut
Membre
Dernière intervention
14 août 2015
4
3 avril 2014 à 11:37
Ok
0