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