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 116 117 118 119 120 121 122 123 124 125
|
#include <stdio.h>
#include <stdlib.h>
int tty(int H, int L, int Yt, int Xt, int Yg, int Xg, char lab[L][H])
{
int mvt[500][500];
int ppX[500][500];
int ppY[500][500];
int i , z , x , y , cpt ;
//remplissage de mvt par des 1
for ( z = 0 ; z < H ; z++ )
{
for ( i = 0 ; i < L ; i++)
mvt[i][z] = 1;
}
for ( z = 0 ; z < H ; z++ ) // je tente un affiche ici aussi pour etre sur que tout est bien passé
{
for ( i = 0 ; i < L ; i++)
printf("%c" , lab[i][z] );
printf("\n");
}
for (cpt= 0 , i = Xt , z = Yt ; (i != Xg && z != Yg ) || cpt < H*L*4 ; cpt++ )
{
x = i;
y = z ;
if (lab[i+1][z] == '.')
{
printf ("mvt 1 %i", mvt[i+1][z] %3);
if ((mvt[i+1][z] %3) != 0)
{ mvt[i][z] = mvt[i][z] * 2 ;
ppX[i+1][z] = i ;
ppY[i+1][z] = z ;
i++;
}
}
else if (lab[i-1][z] == '.')
{
printf ("mvt 2 %i", mvt[i-1][z] %2);
if ((mvt[i-1][z] %2) != 0)
{ mvt[i][z] = mvt[i][z] * 3 ;
ppX[i-1][z] = i ;
ppY[i-1][z] = z ;
i--; }
}
else if (lab[i][z+1] == '.')
{
printf ("mvt 3 %i", mvt[i][z+1] %7);
if ((mvt[i][z+1] %7) != 0)
{ mvt[i][z] = mvt[i][z] * 5 ;
ppX[i][z+1] = i ;
ppY[i][z+1] = z ;
z++;}
}
else if (lab[i][z-1] == '.')
{
if ((mvt[i][z-1] %5) != 0)
{ mvt[i][z] = mvt[i][z] * 7 ;
ppX[i][z-1] = i ;
ppY[i][z-1] = z ;
z--;}
}
//si aucun mvt effectuer revenir a la case precedente
if ( x == i && y == z)
{
i= ppX[i][z];
z= ppY[i][z];
printf("reviens sur la case %i %i", i, z);
}
}
if (cpt != H*L*4 )
printf("1");
else printf ("0");
}
int main(void)
{
int z , i ;
int H;
int L;
int Yt;
int Xt;
int Yg;
int Xg;
char lab[500][500];
scanf("%i", &H);
scanf("%i", &L);
scanf("%i", &Yt);
scanf("%i", &Xt);
scanf("%i", &Yg);
scanf("%i", &Xg);
for ( i = 0 ; i < L ; i++ )
{
for ( z = 0 ; z < H ; z++)
{
scanf("%c" , &lab[i][z]);
}
getchar();
}
for ( i = 0 ; i < L ; i++ )
{
printf("\n");
for ( z = 0 ; z < H ; z++)
printf("%c" , lab[i][z] );
}
tty(H, H, Yt, Xt, Yg, Xg, lab);
return 0;
} |
Partager