Répondre à la discussion
Affichage des résultats 1 à 8 sur 8

Jeu console en C - booléens, comment lui faire comprendre que 'oui = 1'



  1. #1
    Hijo-Nik

    Jeu console en C - booléens, comment lui faire comprendre que 'oui = 1'


    ------

    Bonjour à la communauté,

    Je travail actuellement sur mon premier jeu en console: L'ordinateur détermine un nombre aléatoire, l'utilisateur doit réussir à deviner ce nombre en un minimum de coups avec les indications <<c'est plus>> ou <<c'est moins>>.

    Voici le code source de base de ce jeu

     Cliquez pour afficher


    Ensuite j'ai essayé un peu de l'améliorer en ajoutant la possibilité de recommencer la partie et en indiquant le nombre de coups avant de deviner le nombre mystère. Chose que j'ai finalement réussi à faire au bout d'une bonne heure

    Voici mon code désormais:

     Cliquez pour afficher


    Mais là je bloque, est -ce que je dois faire une boucle while / do.. while ? est-ce que je me trompe dans l'écriture de mon booléen ?
    Dans tous les cas lorsque la console demande "voulez vous continuer à jouer" que je tape 1 ou 0 ne change rien, la boucle recommence. J'aimerais pourtant que le programme s’arrête si je met 0.

    Aussi, je ne saisi pas très bien comment faire comprendre à l'ordinateur que la réponse typographique "Oui" voudrait dire 1 donc entrer dans la boucle.

    Merci

    -----
    Dernière modification par Hijo-Nik ; 19/12/2014 à 15h57.

  2. #2
    JeSuisConscient

    Re : Jeu console en C - booléens, comment lui faire comprendre que 'oui = 1'

    alors hum il ne faut pas confondre le = avec ==
    le while continuerpartie=1 c pas continuerpartie == 1 ?

  3. #3
    albanxiii
    Modérateur

    Re : Jeu console en C - booléens, comment lui faire comprendre que 'oui = 1'

    Bonjour,

    En plus, si vous écrivez

    Code:
    int continuerPartie = 0;
    
    ...
    
    while ( continuerPartie == 1 )
    {
    ...
    }
    
    ...
    vous ne passerez jamais dans la boucle.

    @+
    Not only is it not right, it's not even wrong!

  4. #4
    Jack
    Modérateur

    Re : Jeu console en C - booléens, comment lui faire comprendre que 'oui = 1'

    Du coup, pour jouer au moins un coup, un "do ... while" s'impose.

    A+

  5. A voir en vidéo sur Futura
  6. #5
    fred1599

    Re : Jeu console en C - booléens, comment lui faire comprendre que 'oui = 1'

    Ça serait aussi très bien si la demande pour continuer le jeu se faisait après la détermination du nombre mystère...

    Les arguments argc et argv sont inutiles et ne sont là que si lors de l'exécution de ton programme tu utilises des paramètres.

    On peut aussi dans une seconde mesure, vérifier les retours de scanf, car dangereux lorsqu'on se trouve dans une boucle (risque de boucle infinie).

  7. #6
    Hijo-Nik

    Re : Jeu console en C - booléens, comment lui faire comprendre que 'oui = 1'

    Bonjour, merci pour vos conseil.

    Voila j'ai modifié le code et je suis plutot content du résultat après avoir eu l'opportunité de corriger le travail d'autres élèves sur le même jeu ils s’avéraient chacun plus long et compliqué que le mien. :frime:

     Cliquez pour afficher


    Pour ce qui est de la syntaxe de main et bien c'est ainsi que l'on nous apprend à l'écrire et l'explication est censée arriver plus tard dans les cours ^^
    Encore merci.

  8. #7
    JeSuisConscient

    Re : Jeu console en C - booléens, comment lui faire comprendre que 'oui = 1'

    rien n'empêche de tourner les pages suivantes et celui qui veut creuser plus loin il peut le faire ...

  9. #8
    Jack
    Modérateur

    Re : Jeu console en C - booléens, comment lui faire comprendre que 'oui = 1'

    Code:
       if (choixNiveau == 1)
       {int MAX = 100; printf("MAX=%d\n", MAX);
        nombreMystere = (rand() % (MAX - MIN + 1)) + MIN;}
    
    
        if (choixNiveau == 2)
        { int MAX = 1000; printf("MAX = %d\n", MAX);
        nombreMystere = (rand() % (MAX - MIN + 1)) + MIN;}
    
    
        else if (choixNiveau == 3)
        { int MAX = 10000; printf("MAX = %d\n", MAX);
        nombreMystere = (rand() % (MAX - MIN + 1)) + MIN;}
    Pourquoi déclarer une nouvelle variable MAX locale alors que celle déclarée en début de programme convenait?
    De plus, par convention, les noms en majuscules sont réservés aux macros et constantes symboliques.
    Et enfin, il y avait plus simple pour le code ci-dessus:
    Code:
     
    switch (choixNiveau)
    {
       case 1:MAX = 100; break;
       case 2:MAX = 1000; break;
       case 3:MAX = 10000;
    }
    printf("MAX = %d\n", MAX);
    nombreMystere = (rand() % (MAX - MIN + 1)) + MIN;}

Discussions similaires

  1. Réponses: 8
    Dernier message: 10/03/2011, 21h04
  2. me faire comprendre comment fonctionne un mélange sulfonitrique
    Par nicovvvvvvvvvv44 dans le forum Chimie
    Réponses: 1
    Dernier message: 08/02/2010, 23h54
  3. Connecteurs booléens
    Par MagStellon dans le forum Mathématiques du collège et du lycée
    Réponses: 18
    Dernier message: 15/04/2007, 23h53
  4. a propos de booléens...
    Par dajety dans le forum Mathématiques du supérieur
    Réponses: 5
    Dernier message: 10/03/2007, 14h19
  5. Comment taper ~ sous la console d'une Debian
    Par Nimport Nawak dans le forum Logiciel - Software - Open Source
    Réponses: 2
    Dernier message: 12/07/2004, 01h23