IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 C Discussion :

Déplacement d'une matrice dans un tableau


Sujet :

C

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2017
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2017
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Déplacement d'une matrice dans un tableau
    Salut à tous ,

    je suis entrain de faire un blokus pour un projet d'info et j'ai besoin de déplacer une matrice 5x5 dans un tableau 20x20 (ce qui revient à que matrice 5x5 est la piece que je veux deplacer et le tableau est l'éspace de jeux .

    J'ai essayé d'écrire ce petit programme pour teste ma fonction de déplacemant mais ça n'a pas trop l'air de marcher.

    Quelqu'un pourrait m'aider s'il vous plait.

    voici le programme que je voulais tester

    Code C : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    #include<stdlib.h>
    #include<stdio.h>
    #include<windows.h>
    #include<string.h>
    typedef struct piece
    {
        char piece_u[5][5];
    }t_piece;
    /////////////////////////////
    //
    //////////////////////////////
    void Initialisation_tableau_plateau_jeu(char mat[20][20])
    {
        int i,j;
     
        for (i=0;i<20;i++)
        {
            for (j=0;j<20;j++)
            {
                mat[i][j]=' ';
            }
        }
    }
     
    void affichage_tableau_plateau_jeu(char mat[20][20])
    {
        system("CLS");
     
        int i,j;
     
        for (i=0;i<20;i++)
        {
            for (j=0;j<20;j++)
            {
                printf("%c",mat[i][j]);
            }
        }
    }
     
    ////////////////////////////////////////////:
    // fonction pour le deplacement de la piece
    //   memmove(destination, origine, nombre_d_octets)
    ///////////////////////////////////////////////////
     
    void deplacement_piece_dans_plateau_jeu(int i,int j,char mat[i][j], t_piece piece_u[5][5])
    {
        memmove(&mat[i][j], &piece_u[5][5], sizeof(t_piece));
    }
     
    ///////////////////////////////////////
    /////////////////////////////////////////
     
    int main()
    {
        int i,j;
     
        char mat[20][20];
        t_piece piece_u[5][5];
        char choix_deplac;
        Initialisation_tableau_plateau_jeu(mat[20][20]);
        affichage_tableau_plateau_jeu(mat[20][20]);
        while (1)
        {
            printf("\n\n[z(Haut), s(Bas), d(Droite), q(Gauche)]?\n" );
                                                                            /*choix_deplac=getChar (chaine);*/
     
            scanf("%s", &choix_deplac);
            switch (choix_deplac)
            {
                //deplacement vers le bas
                case 's' :
                {
                    i++;
     
                    deplacement_piece_dans_plateau_jeu(i,j,&mat[i][j],&piece_u[5][5]);
                }
     
                break;
     
                // deplacment vers le haut
                case 'z' :
                {
     
                    i--;
     
                    deplacement_piece_dans_plateau_jeu(i,j,&mat[i][j],&piece_u[5][5]);
                }
                break;
     
                // deplacmeent vers la gauche
                case 'q' :
                {
     
                    j--;
                    deplacement_piece_dans_plateau_jeu(i,j,&mat[i][j],&piece_u[5][5]);
                }
                break;
     
                // deplacement vers la droite
                case 'd' :
                {
                    j++;
     
                    deplacement_piece_dans_plateau_jeu(i,j,&mat[i][j],&piece_u[5][5]);
                }
                break;
     
                default : printf("erreur\n" );
                break;
     
            }
     
            affichage_tableau_plateau_jeu(mat[20][20]);
        }
    }

  2. #2
    Expert confirmé
    Inscrit en
    Mars 2005
    Messages
    1 431
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 1 431
    Points : 4 182
    Points
    4 182
    Par défaut
    Tu sembles attendre de la fonction memmove un comportement qu'elle n'a pas. Relis bien la page de manuel correspondante. En aucun cas cette fonction ne va réinitialiser le buffer d'entrée (mais elle peut en altérer le contenu par effet de bord). Tu ne déplaces donc pas une pièce sur ton tableau de jeu, tu la copies.

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2017
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2017
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    ok ,merci beaucoup pour ton aide .je vais revoir comment marche la fonction memmove , je crois que j'ai mal compris son fonctionnement .

Discussions similaires

  1. [Tableaux] Recherche d'une chaine dans un tableau
    Par tom06440 dans le forum Langage
    Réponses: 5
    Dernier message: 20/10/2005, 23h27
  2. [HTML] Charger une page dans un tableau? Possible?
    Par mec.nimois dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 17/10/2005, 11h32
  3. ligne blanche sous une image dans un tableau
    Par spikelille dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 10/09/2005, 18h24
  4. [JTable] Afficher une date dans un tableau / Renderer
    Par isak dans le forum Composants
    Réponses: 3
    Dernier message: 11/07/2005, 17h09
  5. probleme bizarre de hauteur auto d'une ligne dans un tableau
    Par zax-tfh dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 17/01/2005, 23h34

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo