Partage
  • Partager sur Facebook
  • Partager sur Twitter

TP Plus ou moins en C

Utiliser While au lieu du do while.

    21 janvier 2020 à 22:06:07

    Tout d'abord, bonjour !

    Hier, j'ai réussi à écrire le code du TP plus ou moins en C en utilisant une boucle while au lieu de do while. Je sais que do while est plus "correct" mais là n'est pas la question

    En effet, bouffon que je suis, je n'ai pas enregistré le code. Du coup, je me ssuis dis que j'allais le réécrire mais... J'ai un problème le nombre aléatoire semble changer à chaque fois que je rerentre un nouveau nombre dans le scanf (enfin je ne suis pas sûr de ce que ça fait exactement... Pouvez-vous m'indiquer mes erreurs ? Et oui, j'écris n'importe comment avec des \n partout mais j'étais désesperé j'ai tenté un peu n'importe quoi.

    Sauvez-moi je vous en supplie je deviens fou

    • Partager sur Facebook
    • Partager sur Twitter
      21 janvier 2020 à 22:14:47

      Hello,

      Retire le \n dans le scanf().

      Et, stp, pas de printscreen, utilise le bouton </> de l'éditeur du site pour poster du code.

      -
      Edité par edgarjacobs 21 janvier 2020 à 22:15:19

      • Partager sur Facebook
      • Partager sur Twitter

      On écrit "j'ai tort", pas "tord" qui est le verbe "tordre" à la 3ème personne de l'indicatif présent

        22 janvier 2020 à 0:10:41 - Message modéré pour le motif suivant : Merci d'utiliser le bouton code du forum pour insérer votre code


          22 janvier 2020 à 1:23:31

          Bonjour,

          Merci de colorer votre code à l'aide du bouton Code

          Les forums d'Openclassrooms disposent d'une fonctionnalité permettant de colorer et mettre en forme les codes source afin de les rendre plus lisibles et faciles à manipuler par les intervenants. Pour cela, il faut utiliser le bouton Code de l'éditeur, choisir un des langages proposés et coller votre code dans la zone prévue. Si vous utilisez l'éditeur de messages en mode Markdown, il faut utiliser les balises <pre class="brush: cpp;">Votre code ici</pre>.

          Liens conseillés

          en image cela donne ceci :

          • Partager sur Facebook
          • Partager sur Twitter
            22 janvier 2020 à 11:18:27

            tu as crées MIN et MAX (ce qui est une très bonne idée)
            Dommage de ne pas les réutiliser dans le printf "choisisser entre MIN et MAX" si tu vois ce que je veux dire ...

            Pour le reste à part le \n dans le scanf ( repéré par le regard vif de edgarjacobs )
            char code[]="Farpait";//le bouton </> est plus pratique car on peut faire des copié collé  

            -
            Edité par neuneutrinos 22 janvier 2020 à 11:18:47

            • Partager sur Facebook
            • Partager sur Twitter
              22 janvier 2020 à 17:37:08

              Bonjour ! J'me suis un peu amusé, et au lieu de choisir des nombres à entrer manuellement, je trouve plus épuré de faire comme suggéré avec 3 niveaux de difficultés. Je suis sûr que c'est optimisable, mais je ne suis qu'à ce stade du cours C donc j'utilise que les formules que je connais ! Dites-moi ce que je peux rajouter (le mode 2 joueurs, je l'ai essayé mais je trouve pas ça forcément amusant en pratique).

              #include <stdio.h>
              #include <stdlib.h>
              #include <time.h>
              
              int main ( int argc, char** argv )
              {
                int nombreRNG = 0, nombreEntre = 0, MAX = 100, MIN = 0, compteur = 0, nouvellePartie = 1, difficulte = 0;
              
                printf("\n\n==Bienvenue au jeu du Plus-ou-moins.==");
              
                while (nouvellePartie == 1)
                {
                  printf("\n\nChoisis ton niveau de difficulté :\n- Facile ? Tappe 1.\n- Intermédiaire ? Tappe 2.\n- Difficile ? Tappe 3.\n\nNiveau : ");
                  scanf("%d", &difficulte);
              
                  switch (difficulte)
                  {
                    case 1:
                      MAX = 10;
                      break;
                    case 2:
                      MAX = 100;
                      break;
                    case 3:
                      MAX = 1000;
                      break;
                    default:
                      printf("\nFais pas le malin. On va te mettre en facile.\n");
                      MAX = 10;
                  }
              
                  printf("\nJe pense à un nombre entre 0 et %d. Devine : ", MAX);
              
                  srand(time(NULL));
                  nombreRNG = (rand() % (MAX - MIN + 1)) + MIN;
              
                  while (nombreRNG != nombreEntre)
                  {
                    compteur = compteur+1;
                    scanf("%d", &nombreEntre);
              
                    if (nombreEntre > nombreRNG)
                    {
                      MAX = nombreEntre;
                      printf("\nC'est moins, donc entre %d et %d.\nChoisis un nouveau nombre : ", MIN, MAX);
                    }
                    if (nombreEntre < nombreRNG) 
                    {
                      MIN = nombreEntre;
                      printf("\nC'est plus, donc entre %d et %d.\nChoisis un nouveau nombre : ", MIN, MAX);
                    }
                  }
                  printf("\n\nGg wp ! Le tout en %d coups !\n\n", compteur);
                  compteur = 0;
                  printf("Tu veux rejouer ?\nOui ? Tappe 1. \nNon ? Tappe 0.\n\nAlors ? : ");
                  scanf("%d", &nouvellePartie);
              
                  if (nouvellePartie == 1)
                  printf("\n\n==Et z'est rebardiiii== !\n");
                }
                printf("\nA plus tard !\n");
                return 0;
              }

              Ah et au fait, merci beaucoup de vos réponses, ça m'avait tourmenté toute la nuit ce foutu \n :D

              -
              Edité par DavidKravetz 22 janvier 2020 à 17:38:56

              • Partager sur Facebook
              • Partager sur Twitter
                23 janvier 2020 à 0:40:46

                Je l'ai fait et j'ai rajouté le mode 02 joueurs, mais on dirait que t'aime pas beaucoup.

                J'ai rajouté aussi une sorte de records, a chaque fois que le joueur essaie de deviner le nombre, on compte ses coups. On enregistrera ses coups dans un fichier texte ou bin avec le nom/pseudo du joueur en question.

                Et quand un autre joueur voudra jouer, tu pourrais afficher les 03 premiers records de ton fichier texte (les records devront être classés en ordre décroissant, celui qui a deviné le nombre plus vite sera en tête donc).

                Voilà

                -
                Edité par Asmitta 23 janvier 2020 à 0:41:29

                • Partager sur Facebook
                • Partager sur Twitter
                  23 janvier 2020 à 1:18:54

                  Salut,
                  Tu pourrais rajouter un autre niveau de difficulté:
                  le joueur ne connait pas l'intervalle dans lequel se trouve le nombre mystère. C'est le programme qui le détermine de façon "aléatoire" dans un intervalle donné.
                  Par exemple, tu choisis un nombre entre 100 et 1000000, mais tu ne dis pas au joueur dans quel intervalle il se trouve.
                  Si tu as choisi un petit nombre, le joueur peut essayer dans les grands nombres.
                  Si le nombre est grand, le joueur peut râler dans les petits nombres.

                  -
                  Edité par PierrotLeFou 23 janvier 2020 à 7:23:44

                  • Partager sur Facebook
                  • Partager sur Twitter

                  Le Tout est souvent plus grand que la somme de ses parties.

                    23 janvier 2020 à 16:36:15

                    Re,-

                    Une idée: calculer la moyenne du nombre de coups tentés avant de trouver la solution

                    • Partager sur Facebook
                    • Partager sur Twitter

                    On écrit "j'ai tort", pas "tord" qui est le verbe "tordre" à la 3ème personne de l'indicatif présent

                    TP Plus ou moins en C

                    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                    • Editeur
                    • Markdown