282 lines
6.0 KiB
C
282 lines
6.0 KiB
C
#ifdef RELEASE
|
|
int etage = 0;
|
|
#else
|
|
int etage = 9;
|
|
#endif
|
|
|
|
#define MAP_SIZE_MAX 50
|
|
typedef char Map[MAP_SIZE_MAX][MAP_SIZE_MAX];
|
|
|
|
#define NB_ETAGE_TOTAL 15
|
|
Vec2i map_sizes[NB_ETAGE_TOTAL] = {
|
|
[0] = {9, 9},
|
|
[1] = {9, 9},
|
|
[2] = {9, 9},
|
|
[3] = {11, 13},
|
|
[4] = {9, 9},
|
|
[5] = {9, 9},
|
|
[6] = {9, 9},
|
|
[7] = {9, 9},
|
|
[8] = {9, 9},
|
|
[9] = {9, 9},
|
|
[10] = {15, 9},
|
|
[11] = {8, 9},
|
|
[12] = {9, 10},
|
|
[13] = {13, 9},
|
|
[14] = {9, 12},
|
|
};
|
|
|
|
Map maps[NB_ETAGE_TOTAL] = {
|
|
[0] = {
|
|
{" P M B "},
|
|
{" M "},
|
|
{" M "},
|
|
{" M "},
|
|
{" M "},
|
|
{" "},
|
|
{" "},
|
|
{" "},
|
|
{" S "},
|
|
},
|
|
[1] = {
|
|
{" P M B "},
|
|
{" M "},
|
|
{" M "},
|
|
{" "},
|
|
{" "},
|
|
{" "},
|
|
{" "},
|
|
{" "},
|
|
{" S "},
|
|
},
|
|
[2] = {
|
|
{" P M B "},
|
|
{" M "},
|
|
{" M "},
|
|
{" "},
|
|
{" "},
|
|
{" "},
|
|
{" "},
|
|
{" "},
|
|
{" S "},
|
|
},
|
|
[3] = {
|
|
{" B "},
|
|
{" "},
|
|
{" MM MM "},
|
|
{" M M "},
|
|
{" M "},
|
|
{" M "},
|
|
{" M M "},
|
|
{" M "},
|
|
{" M "},
|
|
{" M M "},
|
|
{" M "},
|
|
{" M "},
|
|
{" S M M P "},
|
|
},
|
|
[4] = {
|
|
{" "},
|
|
{" "},
|
|
{" "},
|
|
{" "},
|
|
{" "},
|
|
{" "},
|
|
{" OOOOO "},
|
|
{" O O "},
|
|
{"P O S O B"},
|
|
},
|
|
[5] = {
|
|
{" "},
|
|
{" OOOOOOO "},
|
|
{" OSOOOBO "},
|
|
{" OOOOOOO "},
|
|
{" OOOOOOO "},
|
|
{" OOOOOOO "},
|
|
{" OOOOOPO "},
|
|
{" OOOOOOO "},
|
|
{" "},
|
|
},
|
|
[6] = {
|
|
{" B "},
|
|
{" A"},
|
|
{"A A "},
|
|
{" A A"},
|
|
{"A "},
|
|
{" M P"},
|
|
{" AS "},
|
|
{"A A A A "},
|
|
{" A A A"},
|
|
},
|
|
[7] = {
|
|
{"A O O A"},
|
|
{"A O O B"},
|
|
{"A O O A"},
|
|
{"A O O A"},
|
|
{"A O O A"},
|
|
{"A O O A"},
|
|
{"A O S O A"},
|
|
{"A O O A"},
|
|
{"A O P O A"},
|
|
},
|
|
[8] = {
|
|
{" B"},
|
|
{" "},
|
|
{" "},
|
|
{" "},
|
|
{" S "},
|
|
{" "},
|
|
{" "},
|
|
{" "},
|
|
{"P "},
|
|
},
|
|
[9] = {
|
|
{"MP M B "},
|
|
{"M M "},
|
|
{"M M "},
|
|
{"M M "},
|
|
{"M M A "},
|
|
{"MOOOOOOOO"},
|
|
{"M "},
|
|
{"M "},
|
|
{"M S "},
|
|
},
|
|
[10] = {
|
|
{"P B O O A"},
|
|
{" O O O O "},
|
|
{"MMMMMMMMMMMMM "},
|
|
{" O O "},
|
|
{" O O O "},
|
|
{" MMMMMMMMMMMOM"},
|
|
{"A O "},
|
|
{" O O O "},
|
|
{"MMMMMMMMMMMMM S"},
|
|
},
|
|
[11] = {
|
|
{" OO "},
|
|
{" OP O "},
|
|
{" O O "},
|
|
{" O O "},
|
|
{" O O "},
|
|
{" OO OO "},
|
|
{"O O"},
|
|
{"OB OO SO"},
|
|
{" OO OO "},
|
|
},
|
|
[12] = {
|
|
{" OO OO "},
|
|
{" OP O BO "},
|
|
{"O O O"},
|
|
{"O O"},
|
|
{"O O"},
|
|
{" O O "},
|
|
{" O O "},
|
|
{" O O "},
|
|
{" OSO "},
|
|
{" O "},
|
|
},
|
|
[13] = {
|
|
{" O P"},
|
|
{" O "},
|
|
{" O "},
|
|
{" O "},
|
|
{" O "},
|
|
{" O "},
|
|
{" O "},
|
|
{" O "},
|
|
{"B O S"},
|
|
},
|
|
[14] = {
|
|
{" GG GGB"},
|
|
{"G G "},
|
|
{"G GG G GG"},
|
|
{"G G G G"},
|
|
{" GG GG "},
|
|
{" "},
|
|
{" S "},
|
|
{" GG GG "},
|
|
{"G G "},
|
|
{"G GG G GG"},
|
|
{"G G G G"},
|
|
{"PGG GG "},
|
|
},
|
|
};
|
|
|
|
// 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 10
|
|
typedef Guard Guards[MAX_GUARD_ETAGE];
|
|
|
|
Guards guards[NB_ETAGE_TOTAL] = {
|
|
[1] = {
|
|
{.start = {2,1}, .end = {2,5}},
|
|
},
|
|
[2] = {
|
|
{.start = {6,5}, .end = {2,5}},
|
|
{.start = {6,7}, .end = {2,7}},
|
|
},
|
|
[3] = {
|
|
{.start = {5,3}, .end = {5,5}},
|
|
{.start = {5,6}, .end = {5,8}},
|
|
{.start = {5,9}, .end = {5,11}},
|
|
},
|
|
[4] = {
|
|
{.start = {2,4}, .end = {6,4}},
|
|
},
|
|
[5] = {
|
|
{.start = {0,0}, .end = {7,0}},
|
|
{.start = {8,0}, .end = {8,7}},
|
|
{.start = {8,8}, .end = {1,8}},
|
|
{.start = {0,8}, .end = {0,1}},
|
|
},
|
|
[7] = {
|
|
{.start = {1,0}, .end = {1,8}},
|
|
{.start = {7,8}, .end = {7,0}},
|
|
},
|
|
[8] = {
|
|
{.start = {1,1}, .end = {5,1}},
|
|
{.start = {7,1}, .end = {7,5}},
|
|
{.start = {7,7}, .end = {3,7}},
|
|
{.start = {1,7}, .end = {1,3}},
|
|
},
|
|
[9] = {
|
|
{.start = {1,1}, .end = {1,4}},
|
|
{.start = {7,2}, .end = {7,4}},
|
|
},
|
|
[10] = {
|
|
{.start = {12,6}, .end = {14,6}},
|
|
{.start = {1,3}, .end = {1,7}},
|
|
{.start = {13,0}, .end = {13,4}},
|
|
},
|
|
[13] = {
|
|
{.start = {0,0}, .end = {9,0}},
|
|
{.start = {1,1}, .end = {9,1}},
|
|
{.start = {2,2}, .end = {9,2}},
|
|
{.start = {3,3}, .end = {9,3}},
|
|
{.start = {4,4}, .end = {9,4}},
|
|
{.start = {5,5}, .end = {9,5}},
|
|
{.start = {6,6}, .end = {9,6}},
|
|
{.start = {7,7}, .end = {9,7}},
|
|
{.start = {8,8}, .end = {9,8}},
|
|
{.start = {9,9}, .end = {9,9}},
|
|
},
|
|
};
|