#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}}, }, };