Partage
  • Partager sur Facebook
  • Partager sur Twitter

Comparer deux chaînes

    8 février 2006 à 20:18:11

    Bonjour,

    Voilà, je suis entrain de programmer un petit jeu de Mastermind en console. Dans le vrai jeu, nous utilisons des batons noirs pour dire qu'il y a une bonne couleur à la bonne place, et des batons blancs pour dire qu'il y a une bonne couleur à la mauvaise place. Dans mon jeu, je remplace les noirs par des "X" et les blancs par des "O".

    Pour l'instant, j'ai fait ça :

    /*Fonction générant les X et les O*/
    long generateAnswer(char combinaisonTab[], char essaieTab[])
        {
             long i = 0;               
             for(i = 0; i < 5; i++)
             {
                 if(essaieTab[i] == combinaisonTab[i])
                     printf("X")
             }
             printf("\n\n");
        }   


    Cette fonction génère seulement les "X". Alors voilà ma question (enfin :p ) : comment fait-on pour savoir si un caractère d'une chaîne (disons chaine1[0]) se retrouve dans une autre chaîne, mais pas à la même case (disons chaine2[3]).

    Merci :)
    • Partager sur Facebook
    • Partager sur Twitter
      8 février 2006 à 21:05:29

      Il y a un cours sur ca je crois! il faut utiliser la librairie <string.h>, mais maintenant à savoir comment l'utiliser comme tu veux, je ne sai pas :/
      ++
      • Partager sur Facebook
      • Partager sur Twitter
        8 février 2006 à 21:15:27

        Citation : Gambit2099

        Il y a un cours sur ca je crois! il faut utiliser la librairie <string.h>, mais maintenant à savoir comment l'utiliser comme tu veux, je ne sai pas :/
        ++



        Je sais que la fonction pour comparer deux chaînes est strcmp(); , mais comme tu dit, moi non plus je ne sais pas si on peut utiliser cette fonction pour faire ce que je veux ou bien s'il existe un autre fonction pour faire ça. o_O
        • Partager sur Facebook
        • Partager sur Twitter
          8 février 2006 à 21:21:34

          strchr, les cours en parlent
          • Partager sur Facebook
          • Partager sur Twitter
            8 février 2006 à 22:26:19

            Salut,

            tiens :

            char chaine1[5] = "Zick";
            char chaine2[5] = "Zick";

            If (strcmp(chaine1, chaine2) == 0)
               printf ("Les chaines sont identiques");
            else
               print ("Les chaines ne sont pas identiques");
            • Partager sur Facebook
            • Partager sur Twitter
              8 février 2006 à 22:26:32

              J'ai moi même fait un mastermind et voilà ce qu'il faut faire :
              Tu dois faire un tableau de marqueur qui contient les pions déjà contabilisés :
              Premier passage, tu teste s'il est bien placé
              Deuxième passage, tu teste s'il est dans la chaine et s'il n'a pas déjà été compté.
              Ensuite, au lieu d'afficher des X et des O, affiche directement le nombre de bien ou mal placés ce sera plus simple.

              Qu'est ce qu'un tableau de marqueur ? C'est tu tableau de la même taille que ton tableau de combinaison qui contient true ou false en fonction de si tu l'as déjà testé (Par exemple)

              J'espère avoir répondu à ta question !

              Pour le test du caractère dans ton tableau de caractères, deux boucles for imbriqués feront l'affaire !
              • Partager sur Facebook
              • Partager sur Twitter
                9 février 2006 à 2:17:21

                Citation : Natim

                J'ai moi même fait un mastermind et voilà ce qu'il faut faire :
                Tu dois faire un tableau de marqueur qui contient les pions déjà contabilisés :
                Premier passage, tu teste s'il est bien placé
                Deuxième passage, tu teste s'il est dans la chaine et s'il n'a pas déjà été compté.
                Ensuite, au lieu d'afficher des X et des O, affiche directement le nombre de bien ou mal placés ce sera plus simple.

                Qu'est ce qu'un tableau de marqueur ? C'est tu tableau de la même taille que ton tableau de combinaison qui contient true ou false en fonction de si tu l'as déjà testé (Par exemple)

                J'espère avoir répondu à ta question !

                Pour le test du caractère dans ton tableau de caractères, deux boucles for imbriqués feront l'affaire !



                Merci Natim, je vais essayer ça ^^
                • Partager sur Facebook
                • Partager sur Twitter

                Comparer deux chaînes

                × 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