Partage
  • Partager sur Facebook
  • Partager sur Twitter

Tableau de tableaux

    25 novembre 2020 à 10:17:28

    Bonjour, je dois réaliser un plateau de jeu de 15*15 cases.

    Mon idée était donc réaliser un sous-programme pour créer une seule case (un tableau[4][4]), qui fonctionne, puis en suite d'afficher cette case par 15*15 en recréant un tableau mais le résultat n'est pas au rendez-vous. Il affiche la case d'une mauvaise manière.

    void printUneCase(int caseSolo[3][4])
    
    {
    caseSolo[0][0]=0xC5; caseSolo[0][1]=0xC4;   
    caseSolo[0][2]=0xC4; caseSolo[0][3]=0xC5;
    caseSolo[1][0]=0xB3; caseSolo[1][1]='a'; 
    caseSolo[1][2]='#';  caseSolo[1][3]=0xB3;
    caseSolo[2][0]=0xC5; caseSolo[2][1]=0xC4;   
    caseSolo[2][2]=0xC4; caseSolo[2][3]=0xC5;
    
        for(int i=0;i<3;i++)
        {
            for(int j=0;j<4;j++)
            {
                printf("%c",caseSolo[i][j]);
            }
            printf("\n");
        }
    
    void printCases(int tab[15][15])
    
    {
        for(int i=0;i<15;i++)
        {
            for(int j=0;j<15;j++)
            {
                printUneCase(tab);
            }
            printf("\n");
        }
    }



    Merci d'avance pour votre aide.

    -
    Edité par AbcAbc6 25 novembre 2020 à 15:18:38

    • Partager sur Facebook
    • Partager sur Twitter
      25 novembre 2020 à 10:40:26

      15 x 15 ? Ce ne serait pas un Scrabble des fois ?

      Tu as un problème ligne 27 : tu envois un pointeur sur des tableaux de 15 éléments à un paramètre prévu pour recevoir l'adresse de tableaux de 4 éléments. Ce n'est pas compatible ! en plus tu appelles 225 fois la fonction avec le même paramètre, ça fait donc 225 fois la même chose !?

      Fait donc au plus simple pour remplir ton tableau, même si ça te fait un peu plus à taper au clavier !

      Il y a des choses plus importante que de se compliquer les choses pour remplir un simple tableau, tu n'as que jusqu'au 7 décembre, et c'est bientôt là !

      • Partager sur Facebook
      • Partager sur Twitter
        25 novembre 2020 à 12:26:41

        Bonjour,

        Ce qu'il faut passer à la fonction c'est juste la valeur de la case donc printfUneCase( tab[j][i] ) donc un simple int, et la fonction gère cela comme elle veut pour tracer un rectangle.

        Mais il y a aussi surtout un problème de successions des cases. après chaque ligne de la case tu reviens à la ligne. Donc on ne peut pas afficher une case à droite de la précédente car on est revenu à la ligne.
        On peut :
        a) avoir une fonction traceLigneCase(case,i) qui trace la i-ième ligne d'une case d'où:
           - printUneCase devient : pour chaque ligne, appeler traceLigneCase(case,i) puis revenir à la ligne
           - printCases devient : pour chaque ligne de case k , pour chaque case j , pour chaque ligne de case i appeler traceLigneCase(tab[k,j],i), ne revenir à la ligne qu'avant le prochain k.
           Ça n'est pas si compliqué, ça demande un peu de lucidité.

        b) On peut aussi construire dans un grand tableau de [15*3]*[15*4] l'image de la grille, puis afficher cette image pour contourner le problème du passage à la ligne. On a alors une séquence apparemment plus simple mais avec des objets plus complexes.

        -
        Edité par Dalfab 25 novembre 2020 à 12:28:09

        • Partager sur Facebook
        • Partager sur Twitter

        En recherche d'emploi.

          27 novembre 2020 à 23:37:52

          Bonjour, merci de vos réponses ! en effet je pense trop me compliquer la vie.

          Une aide est proposée avec la fonction gotoligcol, permettant d'afficher un mot en fonction de ses coordonnées. Je pense donc créer une grille simple sur l'interface, et ensuite remplir les caractères grâce à cette fonction, ainsi que la saisie d'un mot.

          Je vais voir comment je m'en sort. :lol:

          • Partager sur Facebook
          • Partager sur Twitter
            29 novembre 2020 à 18:18:08

            Bonjour, j'essaye de finaliser mn tableau avec la fonction gotoligcol, mais j'ai pensé sinon a mettre mon tableau en tri-dimensionel pour avoir la première dimension avec les caractères et le cadrillage, puis le "calque" derrière ou je place mes mots. Mais je ne sais pas trop comment structurer tout cela.

            Des idées ?

            • Partager sur Facebook
            • Partager sur Twitter
              29 novembre 2020 à 18:24:04

              en tri-dimensionnel ?  Tu trouve que ce n'est pas assez compliqué ?
              • Partager sur Facebook
              • Partager sur Twitter
                29 novembre 2020 à 18:44:36

                Oui enfait je pars sur la fonction gotoglicol c mieux haha.

                Mais par contre j'ai trouvé comment placer on mot sur le tableau mais les caractères disparaissent a coté vu que je met des espaces : explication avec un bout du code :

                -
                Edité par Theo888 30 novembre 2020 à 11:52:28

                • Partager sur Facebook
                • Partager sur Twitter
                  29 novembre 2020 à 18:57:00

                  Theo888 a écrit:

                  Oui enfait je pars sur la fonction gotoglicol c mieux haha.

                  Et elle sort d'où cette fonction ? Je te signale qu'elle n'existe pas dans la lib C !

                  • Partager sur Facebook
                  • Partager sur Twitter

                  Tableau de tableaux

                  × 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