180 lines
5.6 KiB
C
180 lines
5.6 KiB
C
#ifdef RELEASE
|
|
int etage = 0;
|
|
#else
|
|
int etage = 8;
|
|
#endif
|
|
|
|
#define MAP_SIZE_MAX 15
|
|
typedef char Map[MAP_SIZE_MAX][MAP_SIZE_MAX];
|
|
|
|
#define NB_ETAGE_TOTAL 10
|
|
Vec2i map_sizes[NB_ETAGE_TOTAL] = {
|
|
[0] = {9, 9},
|
|
[1] = {9, 9},
|
|
[2] = {9, 9},
|
|
[3] = {9, 9},
|
|
[4] = {9, 9},
|
|
[5] = {9, 9},
|
|
[6] = {9, 9},
|
|
[7] = {9, 9},
|
|
[8] = {9, 9},
|
|
[9] = {9, 9},
|
|
};
|
|
|
|
Map maps[NB_ETAGE_TOTAL] = {
|
|
[0] = {
|
|
{' ','P',' ',' ','M',' ',' ','B',' '},
|
|
{' ',' ',' ',' ','M',' ',' ',' ',' '},
|
|
{' ',' ',' ',' ','M',' ',' ',' ',' '},
|
|
{' ',' ',' ',' ','M',' ',' ',' ',' '},
|
|
{' ',' ',' ',' ','M',' ',' ',' ',' '},
|
|
{' ',' ',' ',' ',' ',' ',' ',' ',' '},
|
|
{' ',' ',' ',' ',' ',' ',' ',' ',' '},
|
|
{' ',' ',' ',' ',' ',' ',' ',' ',' '},
|
|
{' ',' ',' ',' ','S',' ',' ',' ',' '},
|
|
},
|
|
[1] = {
|
|
{' ','P',' ',' ',' ',' ',' ','B',' '},
|
|
{' ',' ',' ',' ',' ',' ',' ',' ',' '},
|
|
{' ',' ',' ',' ',' ',' ',' ',' ',' '},
|
|
{' ',' ',' ',' ',' ',' ',' ',' ',' '},
|
|
{' ',' ',' ',' ',' ',' ',' ',' ',' '},
|
|
{' ',' ',' ',' ',' ',' ',' ',' ',' '},
|
|
{' ',' ',' ',' ',' ',' ',' ',' ',' '},
|
|
{' ',' ',' ',' ',' ',' ',' ',' ',' '},
|
|
{' ',' ',' ',' ','S',' ',' ',' ',' '},
|
|
},
|
|
[2] = {
|
|
{'M','P',' ',' ','M',' ',' ','B',' '},
|
|
{'M',' ',' ',' ','M',' ',' ',' ',' '},
|
|
{' ',' ',' ',' ','M',' ',' ',' ',' '},
|
|
{' ',' ',' ',' ','M',' ',' ',' ',' '},
|
|
{' ',' ',' ',' ','M',' ',' ',' ',' '},
|
|
{' ',' ',' ',' ',' ',' ',' ',' ',' '},
|
|
{' ',' ',' ',' ',' ',' ',' ',' ',' '},
|
|
{' ',' ',' ',' ',' ',' ',' ',' ',' '},
|
|
{' ',' ',' ',' ','S',' ',' ',' ',' '},
|
|
},
|
|
[3] = {
|
|
{'M','P',' ',' ','M',' ',' ','B',' '},
|
|
{'M',' ',' ',' ','M',' ',' ',' ',' '},
|
|
{'M',' ',' ',' ','M',' ',' ',' ',' '},
|
|
{' ',' ',' ',' ','M',' ',' ',' ',' '},
|
|
{' ',' ',' ',' ','M',' ',' ',' ',' '},
|
|
{' ',' ',' ',' ',' ',' ',' ',' ',' '},
|
|
{' ',' ',' ',' ',' ',' ',' ',' ',' '},
|
|
{' ',' ',' ',' ',' ',' ',' ',' ',' '},
|
|
{' ',' ',' ',' ','S',' ',' ',' ',' '},
|
|
},
|
|
[4] = {
|
|
{'M','P',' ',' ','M',' ',' ','B',' '},
|
|
{'M',' ',' ',' ','M',' ',' ',' ',' '},
|
|
{'M',' ',' ',' ','M',' ',' ',' ',' '},
|
|
{'M',' ',' ',' ','M',' ',' ',' ',' '},
|
|
{' ',' ',' ',' ','M',' ',' ',' ',' '},
|
|
{' ',' ',' ',' ',' ',' ',' ',' ',' '},
|
|
{' ',' ',' ',' ',' ',' ',' ',' ',' '},
|
|
{' ',' ',' ',' ',' ',' ',' ',' ',' '},
|
|
{' ',' ',' ',' ','S',' ',' ',' ',' '},
|
|
},
|
|
[5] = {
|
|
{'M','P',' ',' ','M',' ',' ','B',' '},
|
|
{'M',' ',' ',' ','M',' ',' ',' ',' '},
|
|
{'M',' ',' ',' ','M',' ',' ',' ',' '},
|
|
{'M',' ',' ',' ','M',' ',' ',' ',' '},
|
|
{'M',' ',' ',' ','M',' ',' ',' ',' '},
|
|
{' ',' ',' ',' ',' ',' ',' ',' ',' '},
|
|
{' ',' ',' ',' ',' ',' ',' ',' ',' '},
|
|
{' ',' ',' ',' ',' ',' ',' ',' ',' '},
|
|
{' ',' ',' ',' ','S',' ',' ',' ',' '},
|
|
},
|
|
[6] = {
|
|
{'M','P',' ',' ','M',' ',' ','B',' '},
|
|
{'M',' ',' ',' ','M',' ',' ',' ',' '},
|
|
{'M',' ',' ',' ','M',' ',' ',' ',' '},
|
|
{'M',' ',' ',' ','M',' ',' ',' ',' '},
|
|
{'M',' ',' ',' ','M',' ',' ',' ',' '},
|
|
{'M',' ',' ',' ',' ',' ',' ',' ',' '},
|
|
{'M',' ',' ',' ',' ',' ',' ',' ',' '},
|
|
{' ',' ',' ',' ',' ',' ',' ',' ',' '},
|
|
{' ',' ',' ',' ','S',' ',' ',' ',' '},
|
|
},
|
|
[7] = {
|
|
{'M','P',' ',' ','M',' ',' ','B',' '},
|
|
{'M',' ',' ',' ','M',' ',' ',' ',' '},
|
|
{'M',' ',' ',' ','M',' ',' ',' ',' '},
|
|
{'M',' ',' ',' ','M',' ',' ',' ',' '},
|
|
{'M',' ',' ',' ','M',' ',' ',' ',' '},
|
|
{'M',' ',' ',' ',' ',' ',' ',' ',' '},
|
|
{'M',' ',' ',' ',' ',' ',' ',' ',' '},
|
|
{'M',' ',' ',' ',' ',' ',' ',' ',' '},
|
|
{' ',' ',' ',' ','S',' ',' ',' ',' '},
|
|
},
|
|
[8] = {
|
|
{'M','P',' ',' ','M',' ',' ','B',' '},
|
|
{'M',' ',' ',' ','M',' ',' ',' ',' '},
|
|
{'M',' ',' ',' ','M',' ',' ',' ',' '},
|
|
{'M',' ',' ',' ','M',' ',' ',' ',' '},
|
|
{'M',' ','G',' ','M',' ','A',' ',' '},
|
|
{'M','O','O','O','O','O','O','O','O'},
|
|
{'M',' ',' ',' ',' ',' ',' ',' ',' '},
|
|
{'M',' ',' ',' ',' ',' ',' ',' ',' '},
|
|
{'M',' ',' ',' ','S',' ',' ',' ',' '},
|
|
},
|
|
[9] = {
|
|
{'M','P',' ',' ','O',' ',' ','B',' '},
|
|
{'M','M',' ',' ','M',' ',' ',' ',' '},
|
|
{'M','M',' ',' ','M',' ',' ',' ',' '},
|
|
{'M','M',' ',' ','M',' ',' ',' ',' '},
|
|
{'M','M',' ',' ','M',' ',' ',' ',' '},
|
|
{'M','M',' ',' ',' ',' ',' ',' ',' '},
|
|
{'M','M',' ',' ',' ',' ',' ',' ',' '},
|
|
{'M','M',' ',' ',' ',' ',' ',' ',' '},
|
|
{'M','M',' ',' ','S',' ',' ',' ',' '},
|
|
},
|
|
};
|
|
|
|
// M: mur
|
|
// O: mur cassable
|
|
// S: joueur
|
|
// B: boutton pour ouvrir la porte
|
|
// P: porte fermer
|
|
// E: porte ouverte
|
|
// A: alarme
|
|
// G: guarde qui bouge pas
|
|
|
|
typedef enum Direction {
|
|
HAUT, BAS, GAUCHE, DROITE,
|
|
} Direction;
|
|
|
|
typedef struct Guard {
|
|
const Vec2i start, end;
|
|
Vec2i pos;
|
|
Direction dir;
|
|
int dead;
|
|
} Guard;
|
|
|
|
#define MAX_GUARD_ETAGE 15
|
|
typedef Guard Guards[MAX_GUARD_ETAGE];
|
|
|
|
Guards guards[NB_ETAGE_TOTAL] = {
|
|
[1] = {
|
|
{.start = {1,1}, .end = {1,5}},
|
|
{.start = {7,2}, .end = {7,6}},
|
|
},
|
|
[2] = {
|
|
{.start = {2,0}, .end = {2,5}},
|
|
{.start = {3,1}, .end = {3,6}},
|
|
},
|
|
[7] = {
|
|
{.start = {3,2}, .end = {3,7}},
|
|
},
|
|
[8] = {
|
|
{.start = {1,1}, .end = {1,4}},
|
|
{.start = {7,2}, .end = {7,4}},
|
|
},
|
|
[9] = {
|
|
{.start = {3,6}, .end = {7,6}},
|
|
},
|
|
};
|