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]);
    }
}