Jeux "Le Juste Prix" [Résolu]

HoniiR 32 Messages postés mardi 1 avril 2014Date d'inscription 14 août 2015 Dernière intervention - 1 avril 2014 à 10:45 - Dernière réponse : HoniiR 32 Messages postés mardi 1 avril 2014Date d'inscription 14 août 2015 Dernière intervention
- 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 §
Afficher la suite 

Votre réponse

12 réponses

Meilleure réponse
Twinuts 5282 Messages postés dimanche 4 mai 2003Date d'inscriptionModérateurStatut 19 octobre 2018 Dernière intervention - 2 avril 2014 à 09:31
2
Merci
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);

Merci Twinuts 2

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 100 internautes ce mois-ci

Commenter la réponse de Twinuts
NHenry 14274 Messages postés vendredi 14 mars 2003Date d'inscriptionModérateurStatut 18 octobre 2018 Dernière intervention - 1 avril 2014 à 12:32
0
Merci
"j'ai un souci que je n'arrive pas à résoudre"
Quel souci ?
Commenter la réponse de NHenry
HoniiR 32 Messages postés mardi 1 avril 2014Date d'inscription 14 août 2015 Dernière intervention - Modifié par HoniiR le 1/04/2014 à 14:14
0
Merci
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.
Commenter la réponse de HoniiR
HoniiR 32 Messages postés mardi 1 avril 2014Date d'inscription 14 août 2015 Dernière intervention - 2 avril 2014 à 14:08
0
Merci
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)
Commenter la réponse de HoniiR
HoniiR 32 Messages postés mardi 1 avril 2014Date d'inscription 14 août 2015 Dernière intervention - Modifié par HoniiR le 2/04/2014 à 17:29
0
Merci
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);

}
Commenter la réponse de HoniiR
Twinuts 5282 Messages postés dimanche 4 mai 2003Date d'inscriptionModérateurStatut 19 octobre 2018 Dernière intervention - Modifié par Twinuts le 2/04/2014 à 20:09
0
Merci
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 ..."
Commenter la réponse de Twinuts
HoniiR 32 Messages postés mardi 1 avril 2014Date d'inscription 14 août 2015 Dernière intervention - 2 avril 2014 à 19:09
0
Merci
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 :( ...
Commenter la réponse de HoniiR
Twinuts 5282 Messages postés dimanche 4 mai 2003Date d'inscriptionModérateurStatut 19 octobre 2018 Dernière intervention - 2 avril 2014 à 20:14
0
Merci
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);
}

Commenter la réponse de Twinuts
HoniiR 32 Messages postés mardi 1 avril 2014Date d'inscription 14 août 2015 Dernière intervention - Modifié par HoniiR le 2/04/2014 à 21:31
0
Merci
Je confond souvent les deux languages =)
Commenter la réponse de HoniiR
HoniiR 32 Messages postés mardi 1 avril 2014Date d'inscription 14 août 2015 Dernière intervention - 3 avril 2014 à 09:36
0
Merci
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 .
Commenter la réponse de HoniiR
Twinuts 5282 Messages postés dimanche 4 mai 2003Date d'inscriptionModérateurStatut 19 octobre 2018 Dernière intervention - 3 avril 2014 à 11:09
0
Merci
Salut,

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

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.