Partage
  • Partager sur Facebook
  • Partager sur Twitter

Amélioration plus ou moins

avec pointeur ect...

    13 février 2008 à 11:50:30

    Bonjours,

    Voilà j'ai essayer d'améliorer le jeu plus ou moins, j'y ai donc ajouter les fonctionnalités suivantes :

    -Un compteur de coups
    -A la fin, on demande si le joueur veut refaire une parti
    -Un mode 2 joueurs


    Jusque la tout a marcher, mais dès que j'essaye de rajouter ceci :

    -Nombre de triche, en mode deux joueur lorsqu'on demande au joueur 2 de rentré un nombre (que le joueur 1 doit deviner) si il met un nombre trop élever (supérieur a 100) cela incrémente une variable triche.

    ça me fais un message d'erreur lors de la compilation.

    Voici les codes :

    main.c
    1. #include <stdio.h>
    2. #include <stdlib.h>
    3. #include <time.h>
    4. #include "fonction.h"
    5. int main ( int argc, char** argv )
    6. {
    7.         long continuerParti = 1;
    8.         while (continuerParti == 1)
    9.         {
    10.                 long choixNombreJoueur;
    11.                 printf("Bienvenue dans le jeu du plus ou moins !\n\n");
    12.                 printf("Jouer avec 1 ou 2 joueurs ?\n1.1joueur\n2.2joueurs");
    13.                 scanf("%ld", &choixNombreJoueur);
    14.                 if (choixNombreJoueur == 1)
    15.                 {
    16.                         system("CLS");
    17.                         long nombreMystere = 0, nombreEntre = 0, nombreDeCoups = 0;
    18.                         const long MAX = 100, MIN = 1;
    19.                         // Génération du nombre aléatoire
    20.                         nombreMystere = genereNombre(MIN, MAX);
    21.                         /* La boucle du programme. Elle se répète tant que l'utilisateur
    22.                         n'a pas trouvé le nombre mystère */
    23.                         do
    24.                         {
    25.                                  // On demande le nombre
    26.                                   printf("\nQuel est le nombre ? ");
    27.                                   scanf("%ld", &nombreEntre);
    28.                                   nombreDeCoups ++;
    29.                                  // On compare le nombre entré avec le nombre mystère
    30.                                  compareNombres(nombreEntre, nombreMystere, &nombreDeCoups, &continuerParti, 0);
    31.                         } while (nombreEntre != nombreMystere);
    32.                 }
    33.                 else
    34.                 {
    35.                         long nombreMystere = 0, nombreEntre = 0, nombreDeCoups = 0, nombreTriche = 0;
    36.                         // le joueur 2 entre le nombre mystere
    37.                         printf("Entrez un nombre entre 1 et 100 (ne trichez pas)");
    38.                         scanf("%ld", &nombreMystere);
    39.                         while (nombreMystere < 1 || nombreMystere > 100)
    40.                         {
    41.                                 nombreTriche ++;
    42.                                 printf("\nTricheur ! Entre un nombre entre 1 et 100");
    43.                                 scanf("%ld", &nombreMystere);
    44.                         }
    45.                         system("CLS");
    46.                         /* La boucle du programme. Elle se répète tant que l'utilisateur
    47.                         n'a pas trouvé le nombre mystère */
    48.                         do
    49.                         {
    50.                                  // On demande le nombre
    51.                                   printf("\nQuel est le nombre ? ");
    52.                                   scanf("%ld", &nombreEntre);
    53.                                   nombreDeCoups ++;
    54.                                  // On compare le nombre entré avec le nombre mystère
    55.                                  compareNombres(nombreEntre, nombreMystere, &nombreDeCoups, &continuerParti, nombreTriche, &choixNombreJoueur);
    56.                         } while (nombreEntre != nombreMystere);
    57.                 }
    58.         }
    59. }



    fonction.c
    1. #include <stdio.h>
    2. #include <stdlib.h>
    3. #include <time.h>
    4. #include "fonction.h"
    5. long genereNombre(long MIN, long MAX)
    6. {
    7.         long nombreMystere;
    8.         srand(time(NULL));
    9.     nombreMystere = (rand() % (MAX - MIN + 1)) + MIN;
    10.         return nombreMystere;
    11. }
    12. void compareNombres(long nombreEntre, long nombreMystere, long *pointeurSurNombreDeCoups,
    13.                                         long *pointeurSurContinuerParti, long nombreTriche, long *choixNombreJoueur)
    14. {
    15.         if (nombreEntre == nombreMystere)
    16.         {
    17.                 long choix = 0;
    18.                 if (*choixNombreJoueur == 1)
    19.                 {
    20.                         printf("Bravo ! Le nombre mystere est bien %ld !Et vous l avez trouver en %ld coups !\n\n", nombreEntre, *pointeurSurNombreDeCoups);
    21.                         printf("Refaire une partie ?\n\n1.Oui\n2.Non");
    22.                         scanf("%ld", &choix);
    23.                 }
    24.                 else
    25.                 {
    26.                         printf("Bravo ! Le nombre mystere est bien %ld !Et vous l avez trouver en %ld coups !\n\n", nombreEntre, *pointeurSurNombreDeCoups);
    27.                         printf("De plus, votre amis a essayer de tricher %ld fois !", nombreTriche);
    28.                         printf("Refaire une partie ?\n\n1.Oui\n2.Non");
    29.                         scanf("%ld", &choix);
    30.                 }
    31.                 if (choix == 1)
    32.                 {
    33.                         system("CLS");
    34.                 }
    35.                 else if(choix == 2)
    36.                 {
    37.                         *pointeurSurContinuerParti = 0;
    38.                 }
    39.         }
    40.         else if(nombreEntre < nombreMystere)
    41.         {
    42.                 printf("C'est plus !");
    43.         }
    44.         else if(nombreEntre > nombreMystere)
    45.         {
    46.                 printf("c'est moins !");
    47.         }
    48. }





    fonction.h
    1. long genereNombre(long MIN, long MAX);
    2. void compareNombres(long nombreEntre, long nombreMystere, long *pointeurSurNombreDeCoups,
    3.                                         long *pointeurSurContinuerParti, long nombreTriche, long *choixNombreJoueur);







    message du compilateur :
    1. jet : test3, Configuration : Debug Win32 ------
    2. Compilation en cours...
    3. main.c
    4. c:\documents and settings\dupin\mes documents\visual studio 2005\projects\test3\test3\main.c(14) : warning C4996: 'scanf' a été déclaré désapprouvé
    5.         c:\program files\microsoft visual studio 8\vc\include\stdio.h(295) : voir la déclaration de 'scanf'
    6.         Message : 'This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_DEPRECATE. See online help for details.'
    7. c:\documents and settings\dupin\mes documents\visual studio 2005\projects\test3\test3\main.c(20) : error C2143: erreur de syntaxe : absence de ';' avant 'type'
    8. c:\documents and settings\dupin\mes documents\visual studio 2005\projects\test3\test3\main.c(21) : error C2143: erreur de syntaxe : absence de ';' avant 'const'
    9. c:\documents and settings\dupin\mes documents\visual studio 2005\projects\test3\test3\main.c(24) : error C2065: 'nombreMystere' : identificateur non déclaré
    10. c:\documents and settings\dupin\mes documents\visual studio 2005\projects\test3\test3\main.c(24) : error C2065: 'MIN' : identificateur non déclaré
    11. c:\documents and settings\dupin\mes documents\visual studio 2005\projects\test3\test3\main.c(24) : error C2065: 'MAX' : identificateur non déclaré
    12. c:\documents and settings\dupin\mes documents\visual studio 2005\projects\test3\test3\main.c(33) : error C2065: 'nombreEntre' : identificateur non déclaré
    13. c:\documents and settings\dupin\mes documents\visual studio 2005\projects\test3\test3\main.c(34) : error C2065: 'nombreDeCoups' : identificateur non déclaré
    14. c:\documents and settings\dupin\mes documents\visual studio 2005\projects\test3\test3\main.c(38) : error C2198: 'compareNombres' : pas assez d'arguments pour un appel
    15. Le journal de génération a été enregistré à l'emplacement "file://c:\Documents and Settings\Dupin\Mes documents\Visual Studio 2005\Projects\test3\test3\Debug\BuildLog.htm"
    16. test3 - 8 erreur(s), 1 avertissement(s)
    17. ========== Génération : 0 a réussi, 1 a échoué, 0 mis à jour, 0 a été ignoré ==========



    Pourtant, j'ai bien déclarer les variables, non ?






    Voilà, merci a vous de bien vouloir m'aider !
    • Partager sur Facebook
    • Partager sur Twitter
      13 février 2008 à 13:13:09

      salut ,
      Ton code fonctionne ,il y a juste cette erreur qui est justifié :
      1. c:\documents and settings\dupin\mes documents\visual studio 2005\projects\test3\test3\main.c(38) : error C2198: 'compareNombres' : pas assez d'arguments pour un appel

      il faut faire comme ça :
      1. compareNombres(nombreEntre, nombreMystere, &nombreDeCoups, &continuerParti ,0,0/*1 ou 0 suivant le nb de joueur*/);


      Pour les autres erreurs Visual studio doit bugger , ou alors c'est pas le même code ^^
      • Partager sur Facebook
      • Partager sur Twitter
        13 février 2008 à 13:50:20

        J'ai fais comme tu as dit mais ça me remet la même erreur, j'ai voulu essayer avec dev, et comme par miracle sa marche ! Quelle bouze se visual C++...
        • Partager sur Facebook
        • Partager sur Twitter

        Amélioration plus ou moins

        × 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