Partage
  • Partager sur Facebook
  • Partager sur Twitter

Pb boucle

Pouvoir mettre la condition OU pour arréter la boucle

Sujet résolu
    2 janvier 2006 à 17:23:25

    Bonjour, je veux créer un pierre, feuilles, ciseaux grâce au langage C mais je n'arrive pas à arréter la boucle comme voulu. Je voulais que lorsque l'ordinateur ou le joueur a gagné 5 points, la boucle s'arrête et que le jeu se termine. Seulement, la boucle ne s'arrête que lorsque les 2 joueurs ont atteint 5 points. Quel est l'erreur dans mon code ???
    Merci d'avance

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

    int main(int argc, char *argv[])
    {
    long nombrejoueur = 0;
    long nombreordi = 0;
    long compteurjoueur = 0;
    long compteurordi = 0;

    printf("Bienvenue dans le jeu pierre, feuille, ciseau. Vous connaissez tous le principe du jeu alors bonne chance !!! Le gagnant est le premier qui arrive a obtenir 5 points.\n\n");



    do {
    printf("1) Pierre\n2) Feuille\n3) Ciseaux\n4) Puit\n");
    printf("Veuillez choisir pierre, feuille, ciseau ou puit en marquant le nombre correspondant :\n");
    scanf("%ld", &nombrejoueur);

    srand(time(NULL));
    const long MAX = 4;
    const long MIN = 1;
    nombreordi = (rand() % (MAX - MIN + 1)) + MIN;

    if (nombrejoueur == 1 && nombreordi == 1){
    printf("Ex-aequo. Personne ne marque de points.\n\n");
    }
    else if (nombrejoueur == 1 && nombreordi == 2){
    printf("Perdu. L'ordinateur marque 1 point.\n\n");
    compteurordi++;
    }
    else if (nombrejoueur == 1 && nombreordi == 3){
    printf("Gagne. Vous marquez 1 point.\n\n");
    compteurjoueur++;
    }
    else if (nombrejoueur == 1 && nombreordi == 4){
    printf("Perdu. L'ordinateur marque 1 point.\n\n");
    compteurordi++;
    }
    else if (nombrejoueur == 2 && nombreordi == 1){
    printf("Gagne. Vous marquez 1 point.\n\n");
    compteurjoueur++;
    }
    else if (nombrejoueur == 2 && nombreordi == 2){
    printf("Ex-aequo. Personne ne marque de points.\n\n");
    }
    else if (nombrejoueur == 2 && nombreordi == 3){
    printf("Perdu. L'ordinateur marque 1 point.\n\n");
    compteurordi++;
    }
    else if (nombrejoueur == 2 && nombreordi == 4){
    printf("Gagne. Vous marquez 1 point.\n\n");
    compteurjoueur++;
    }
    else if (nombrejoueur == 3 && nombreordi == 1){
    printf("Perdu. L'ordinateur marque 1 point.\n\n");
    compteurordi++;
    }
    else if (nombrejoueur == 3 && nombreordi == 2){
    printf("Gagne. Vous marquez 1 point.\n\n");
    compteurjoueur++;
    }
    else if (nombrejoueur == 3 && nombreordi == 3){
    printf("Ex-aequo. Personne ne marque de points.\n\n");
    }
    else if (nombrejoueur == 3 && nombreordi == 4){
    printf("Perdu. L'ordinateur marque 1 point.\n\n");
    compteurordi++;
    }
    else if (nombrejoueur == 4 && nombreordi == 1){
    printf("Gagne. Vous marquez 1 point.\n\n");
    compteurjoueur++;
    }
    else if (nombrejoueur == 4 && nombreordi == 2){
    printf("Perdu. L'ordinateur marque 1 point.\n\n");
    compteurordi++;
    }
    else if (nombrejoueur == 4 && nombreordi == 3){
    printf("Gagne. Vous marquez 1 point.\n\n");
    compteurjoueur++;
    }
    else if (nombrejoueur == 4 && nombreordi == 4){
    printf("Ex-aequo. Personne ne marque de points.\n\n");
    }
    else {
    printf("Veuillez retaper votre choix svp.\n\n");}

    }
    while (compteurjoueur < 5 || compteurordi < 5);

    if (compteurjoueur == 5){
    printf("L'ordinateur a gagne. Desole...\n\n");}

    else if (compteurordi == 5){
    printf("Bravo ! Vouus avez gagne.\n\n");}

    system("PAUSE");
    return 0;
    }


    • Partager sur Facebook
    • Partager sur Twitter
      2 janvier 2006 à 17:39:51

      Citation : Pas de titre

      while (compteurjoueur < 5 || compteurordi < 5);


      Salut.
      Il faut que tu mettes && à la place de ||. En effet, tu veux continuer la boucle tant q'aucun joueur n'ai atteint 5 points, c'est à dire, tant que le joueur ai moins de 5 points et l'ordinateur ai moins de 5 points.

      PS : Utilise un switch plutot que des else if ;)
      • Partager sur Facebook
      • Partager sur Twitter
        2 janvier 2006 à 17:42:41

        Mais oui merci !!!! Je suis trop bête !!!
        • Partager sur Facebook
        • Partager sur Twitter

        Pb boucle

        × 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