Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
LevelDefinitions/LevelDefinitions.h@13:32d580b3935c, 2019-05-06 (annotated)
- Committer:
- joshdavy
- Date:
- Mon May 06 15:07:28 2019 +0000
- Revision:
- 13:32d580b3935c
- Parent:
- 11:db27d3838514
- Child:
- 14:1e6f74233e8e
test;
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| joshdavy | 13:32d580b3935c | 1 | /** |
| joshdavy | 13:32d580b3935c | 2 | * @brief Struct for storing a blocks location |
| joshdavy | 13:32d580b3935c | 3 | */ |
| joshdavy | 11:db27d3838514 | 4 | struct Block { |
| joshdavy | 13:32d580b3935c | 5 | Vector2D first; /**< Coord of the top left of the block. */ |
| joshdavy | 13:32d580b3935c | 6 | Vector2D second; /**<Coord of the bottom right of the block */ |
| joshdavy | 13:32d580b3935c | 7 | }; |
| joshdavy | 13:32d580b3935c | 8 | |
| joshdavy | 13:32d580b3935c | 9 | /** |
| joshdavy | 13:32d580b3935c | 10 | * @brief Struct for defining moving blocks |
| joshdavy | 13:32d580b3935c | 11 | */ |
| joshdavy | 13:32d580b3935c | 12 | struct MovingBlockDefinition { |
| joshdavy | 13:32d580b3935c | 13 | int index; /**< Index of the moving block*/ |
| joshdavy | 13:32d580b3935c | 14 | bool extending;/**< True if to start in the extending phase. False if not.*/ |
| joshdavy | 13:32d580b3935c | 15 | int distance; /** Distance to extend*/ |
| joshdavy | 11:db27d3838514 | 16 | }; |
| joshdavy | 8:21b6d4dbce44 | 17 | |
| joshdavy | 13:32d580b3935c | 18 | /** |
| joshdavy | 13:32d580b3935c | 19 | * @brief Struct for defining levels. |
| joshdavy | 13:32d580b3935c | 20 | */ |
| joshdavy | 8:21b6d4dbce44 | 21 | struct LevelDefinition { |
| joshdavy | 13:32d580b3935c | 22 | Block blocks [20]; /**< Array of blocks*/ |
| joshdavy | 13:32d580b3935c | 23 | int number_of_blocks; /**< Number of blocks */ |
| joshdavy | 13:32d580b3935c | 24 | MovingBlockDefinition moving_blocks [10]; /** Array of moving block |
| joshdavy | 13:32d580b3935c | 25 | definitions*/ |
| joshdavy | 13:32d580b3935c | 26 | int number_of_moving_blocks ; /**< Number of moving blocks*/ |
| joshdavy | 13:32d580b3935c | 27 | Vector2D initial_pos; /**< Initial Positon*/ |
| joshdavy | 13:32d580b3935c | 28 | Vector2D goal; /**< Goal location*/ |
| joshdavy | 9:96969b1c6bde | 29 | }; |
| joshdavy | 13:32d580b3935c | 30 | /** |
| joshdavy | 13:32d580b3935c | 31 | @code |
| joshdavy | 13:32d580b3935c | 32 | /////////////// EXAMPLE DEFINITION ///////////////////////// |
| joshdavy | 13:32d580b3935c | 33 | const LevelDefinition level_1 = { |
| joshdavy | 13:32d580b3935c | 34 | // Define Blocks // Array of blocks |
| joshdavy | 13:32d580b3935c | 35 | { // Blocks are defined by their top left followed |
| joshdavy | 13:32d580b3935c | 36 | { {5,30},{80,40} }, // by there bottom right coord. MUST be in that |
| joshdavy | 13:32d580b3935c | 37 | { {5,5}, {80,10} }, // order. |
| joshdavy | 13:32d580b3935c | 38 | { {10,24},{20,34} }, |
| joshdavy | 13:32d580b3935c | 39 | { {40,24},{44,26} } |
| joshdavy | 13:32d580b3935c | 40 | }, |
| joshdavy | 13:32d580b3935c | 41 | // Number Of Blocks |
| joshdavy | 13:32d580b3935c | 42 | 4, |
| joshdavy | 13:32d580b3935c | 43 | // Moving Blocks // Movingblocks are defined as: |
| joshdavy | 13:32d580b3935c | 44 | { // {index,extending,distance} |
| joshdavy | 13:32d580b3935c | 45 | {3,true,25}, // index is the index in the block array |
| joshdavy | 13:32d580b3935c | 46 | }, // of the block which you want to move |
| joshdavy | 13:32d580b3935c | 47 | // Number Of Moving blocks extending is a bool if the block starts in |
| joshdavy | 13:32d580b3935c | 48 | 1, // its extending/retracting phase |
| joshdavy | 13:32d580b3935c | 49 | // Initial Position // distance is the horizontal distance the block |
| joshdavy | 13:32d580b3935c | 50 | {32,10}, // moves. |
| joshdavy | 13:32d580b3935c | 51 | // Goal |
| joshdavy | 13:32d580b3935c | 52 | {70,19} |
| joshdavy | 13:32d580b3935c | 53 | }; |
| joshdavy | 13:32d580b3935c | 54 | |
| joshdavy | 13:32d580b3935c | 55 | NOTE: MAX no. of blocks is 20 MAX no. of moving blocks is 10 |
| joshdavy | 13:32d580b3935c | 56 | |
| joshdavy | 10:58cf89dd878c | 57 | ////////////////////////////////////////////////////////////// |
| joshdavy | 13:32d580b3935c | 58 | @endcode |
| joshdavy | 13:32d580b3935c | 59 | */ |
| joshdavy | 13:32d580b3935c | 60 | |
| joshdavy | 9:96969b1c6bde | 61 | const LevelDefinition level_1 = { |
| joshdavy | 9:96969b1c6bde | 62 | // Define Blocks |
| joshdavy | 9:96969b1c6bde | 63 | { |
| joshdavy | 9:96969b1c6bde | 64 | { {5,30},{80,40} }, |
| joshdavy | 9:96969b1c6bde | 65 | { {5,5}, {80,10} } |
| joshdavy | 9:96969b1c6bde | 66 | }, |
| joshdavy | 9:96969b1c6bde | 67 | // Number Of Blocks |
| joshdavy | 9:96969b1c6bde | 68 | 2, |
| joshdavy | 9:96969b1c6bde | 69 | // Moving Blocks |
| joshdavy | 9:96969b1c6bde | 70 | { |
| joshdavy | 9:96969b1c6bde | 71 | |
| joshdavy | 9:96969b1c6bde | 72 | }, |
| joshdavy | 9:96969b1c6bde | 73 | // Number Of Moving blocks |
| joshdavy | 9:96969b1c6bde | 74 | 0, |
| joshdavy | 9:96969b1c6bde | 75 | // Initial Position |
| joshdavy | 9:96969b1c6bde | 76 | {12,10}, |
| joshdavy | 9:96969b1c6bde | 77 | // Goal |
| joshdavy | 9:96969b1c6bde | 78 | {75,19} |
| joshdavy | 9:96969b1c6bde | 79 | }; |
| joshdavy | 9:96969b1c6bde | 80 | |
| joshdavy | 9:96969b1c6bde | 81 | const LevelDefinition level_2 = { |
| joshdavy | 9:96969b1c6bde | 82 | // Define Blocks |
| joshdavy | 9:96969b1c6bde | 83 | { |
| joshdavy | 9:96969b1c6bde | 84 | { {0,40},{84,45} }, |
| joshdavy | 9:96969b1c6bde | 85 | { {5,5}, {80,10} }, |
| joshdavy | 9:96969b1c6bde | 86 | { {30,20},{40,40} } |
| joshdavy | 9:96969b1c6bde | 87 | }, |
| joshdavy | 9:96969b1c6bde | 88 | // Number Of Blocks |
| joshdavy | 9:96969b1c6bde | 89 | 3, |
| joshdavy | 9:96969b1c6bde | 90 | // Moving Blocks |
| joshdavy | 9:96969b1c6bde | 91 | { |
| joshdavy | 9:96969b1c6bde | 92 | |
| joshdavy | 9:96969b1c6bde | 93 | }, |
| joshdavy | 9:96969b1c6bde | 94 | // Number Of Moving blocks |
| joshdavy | 9:96969b1c6bde | 95 | 0, |
| joshdavy | 9:96969b1c6bde | 96 | // Initial Position |
| joshdavy | 9:96969b1c6bde | 97 | {12,30}, |
| joshdavy | 9:96969b1c6bde | 98 | // Goal |
| joshdavy | 9:96969b1c6bde | 99 | {76,29} |
| joshdavy | 9:96969b1c6bde | 100 | }; |
| joshdavy | 9:96969b1c6bde | 101 | |
| joshdavy | 9:96969b1c6bde | 102 | const LevelDefinition level_3 = { |
| joshdavy | 9:96969b1c6bde | 103 | // Define Blocks |
| joshdavy | 9:96969b1c6bde | 104 | { |
| joshdavy | 9:96969b1c6bde | 105 | { {0,40},{84,45} }, |
| joshdavy | 9:96969b1c6bde | 106 | { {5,5}, {70,10} }, |
| joshdavy | 9:96969b1c6bde | 107 | { {30,20},{40,40} }, |
| joshdavy | 9:96969b1c6bde | 108 | { {50,10},{60,30} }, |
| joshdavy | 9:96969b1c6bde | 109 | { {70,20},{80,40} } |
| joshdavy | 9:96969b1c6bde | 110 | }, |
| joshdavy | 9:96969b1c6bde | 111 | // Number Of Blocks |
| joshdavy | 9:96969b1c6bde | 112 | 5, |
| joshdavy | 9:96969b1c6bde | 113 | // Moving Blocks |
| joshdavy | 9:96969b1c6bde | 114 | { |
| joshdavy | 9:96969b1c6bde | 115 | |
| joshdavy | 9:96969b1c6bde | 116 | }, |
| joshdavy | 9:96969b1c6bde | 117 | // Number Of Moving blocks |
| joshdavy | 9:96969b1c6bde | 118 | 0, |
| joshdavy | 9:96969b1c6bde | 119 | // Initial Position |
| joshdavy | 9:96969b1c6bde | 120 | {12,30}, |
| joshdavy | 9:96969b1c6bde | 121 | // Goal |
| joshdavy | 9:96969b1c6bde | 122 | {72,9} |
| joshdavy | 9:96969b1c6bde | 123 | }; |
| joshdavy | 9:96969b1c6bde | 124 | const LevelDefinition level_4 = { |
| joshdavy | 9:96969b1c6bde | 125 | // Define Blocks |
| joshdavy | 9:96969b1c6bde | 126 | { |
| joshdavy | 10:58cf89dd878c | 127 | { {4,8}, {60,10} }, |
| joshdavy | 9:96969b1c6bde | 128 | { {50,10},{60,30} }, |
| joshdavy | 9:96969b1c6bde | 129 | { {20,22},{50,30} }, |
| joshdavy | 10:58cf89dd878c | 130 | { {0,0}, {5,10} }, |
| joshdavy | 10:58cf89dd878c | 131 | { {5,40}, {58,50} } |
| joshdavy | 9:96969b1c6bde | 132 | |
| joshdavy | 9:96969b1c6bde | 133 | }, |
| joshdavy | 9:96969b1c6bde | 134 | // Number Of Blocks |
| joshdavy | 9:96969b1c6bde | 135 | 5, |
| joshdavy | 9:96969b1c6bde | 136 | // Moving Blocks |
| joshdavy | 9:96969b1c6bde | 137 | { |
| joshdavy | 9:96969b1c6bde | 138 | |
| joshdavy | 9:96969b1c6bde | 139 | }, |
| joshdavy | 9:96969b1c6bde | 140 | // Number Of Moving blocks |
| joshdavy | 9:96969b1c6bde | 141 | 0, |
| joshdavy | 9:96969b1c6bde | 142 | // Initial Position |
| joshdavy | 9:96969b1c6bde | 143 | {12,0}, |
| joshdavy | 9:96969b1c6bde | 144 | // Goal |
| joshdavy | 9:96969b1c6bde | 145 | {30,11} |
| joshdavy | 9:96969b1c6bde | 146 | }; |
| joshdavy | 9:96969b1c6bde | 147 | const LevelDefinition level_5 = { |
| joshdavy | 9:96969b1c6bde | 148 | // Define Blocks |
| joshdavy | 9:96969b1c6bde | 149 | { |
| joshdavy | 9:96969b1c6bde | 150 | { {30,8}, {60,10} }, |
| joshdavy | 9:96969b1c6bde | 151 | { {40 ,20 },{ 70 ,22 } }, |
| joshdavy | 9:96969b1c6bde | 152 | { {30,30}, {60,32} }, |
| joshdavy | 9:96969b1c6bde | 153 | { {0 ,40 },{ 70 ,42 } }, |
| joshdavy | 9:96969b1c6bde | 154 | |
| joshdavy | 9:96969b1c6bde | 155 | { {70,0},{72,42} }, |
| joshdavy | 9:96969b1c6bde | 156 | { {28,0},{30,32} }, |
| joshdavy | 9:96969b1c6bde | 157 | |
| joshdavy | 9:96969b1c6bde | 158 | {{0,14},{10,40} }, |
| joshdavy | 9:96969b1c6bde | 159 | {{0,0},{30,2}}, |
| joshdavy | 9:96969b1c6bde | 160 | }, |
| joshdavy | 9:96969b1c6bde | 161 | // Number Of Blocks |
| joshdavy | 9:96969b1c6bde | 162 | 8, |
| joshdavy | 9:96969b1c6bde | 163 | // Moving Blocks |
| joshdavy | 9:96969b1c6bde | 164 | { |
| joshdavy | 9:96969b1c6bde | 165 | |
| joshdavy | 9:96969b1c6bde | 166 | }, |
| joshdavy | 9:96969b1c6bde | 167 | // Number Of Moving blocks |
| joshdavy | 9:96969b1c6bde | 168 | 0, |
| joshdavy | 9:96969b1c6bde | 169 | // Initial Position |
| joshdavy | 9:96969b1c6bde | 170 | {30,0}, |
| joshdavy | 9:96969b1c6bde | 171 | // Goal |
| joshdavy | 9:96969b1c6bde | 172 | {1,3} |
| joshdavy | 9:96969b1c6bde | 173 | }; |
| joshdavy | 9:96969b1c6bde | 174 | |
| joshdavy | 9:96969b1c6bde | 175 | const LevelDefinition level_6 = { |
| joshdavy | 9:96969b1c6bde | 176 | // Define Blocks |
| joshdavy | 9:96969b1c6bde | 177 | { |
| joshdavy | 9:96969b1c6bde | 178 | {{1,20},{12,48}}, |
| joshdavy | 9:96969b1c6bde | 179 | {{12,26},{22,36}}, |
| joshdavy | 9:96969b1c6bde | 180 | {{77,28},{84,48}}, |
| joshdavy | 9:96969b1c6bde | 181 | }, |
| joshdavy | 9:96969b1c6bde | 182 | // Number Of Blocks |
| joshdavy | 9:96969b1c6bde | 183 | 3, |
| joshdavy | 9:96969b1c6bde | 184 | // Moving Blocks |
| joshdavy | 9:96969b1c6bde | 185 | { |
| joshdavy | 9:96969b1c6bde | 186 | {1,false,55}, //55 |
| joshdavy | 9:96969b1c6bde | 187 | }, |
| joshdavy | 9:96969b1c6bde | 188 | // Number Of Moving blocks |
| joshdavy | 9:96969b1c6bde | 189 | 1, |
| joshdavy | 9:96969b1c6bde | 190 | // Initial Position |
| joshdavy | 9:96969b1c6bde | 191 | {0,10}, |
| joshdavy | 9:96969b1c6bde | 192 | // Goal |
| joshdavy | 9:96969b1c6bde | 193 | {77,17} |
| joshdavy | 9:96969b1c6bde | 194 | }; |
| joshdavy | 9:96969b1c6bde | 195 | |
| joshdavy | 9:96969b1c6bde | 196 | |
| joshdavy | 9:96969b1c6bde | 197 | const LevelDefinition level_7 = { |
| joshdavy | 9:96969b1c6bde | 198 | // Define Blocks |
| joshdavy | 9:96969b1c6bde | 199 | { |
| joshdavy | 9:96969b1c6bde | 200 | {{1,34},{12,48}}, |
| joshdavy | 9:96969b1c6bde | 201 | {{12,38},{22,48}}, |
| joshdavy | 9:96969b1c6bde | 202 | {{32,0},{42,10}}, |
| joshdavy | 11:db27d3838514 | 203 | {{77,30},{84,48}}, |
| joshdavy | 9:96969b1c6bde | 204 | }, |
| joshdavy | 9:96969b1c6bde | 205 | // Number Of Blocks |
| joshdavy | 9:96969b1c6bde | 206 | 4, |
| joshdavy | 9:96969b1c6bde | 207 | // Moving Blocks |
| joshdavy | 9:96969b1c6bde | 208 | { |
| joshdavy | 9:96969b1c6bde | 209 | {1,true,25}, |
| joshdavy | 9:96969b1c6bde | 210 | {2,false,25}, |
| joshdavy | 9:96969b1c6bde | 211 | }, |
| joshdavy | 9:96969b1c6bde | 212 | // Number Of Moving blocks |
| joshdavy | 9:96969b1c6bde | 213 | 2, |
| joshdavy | 9:96969b1c6bde | 214 | // Initial Position |
| joshdavy | 9:96969b1c6bde | 215 | {0,20}, |
| joshdavy | 9:96969b1c6bde | 216 | // Goal |
| joshdavy | 11:db27d3838514 | 217 | {77,19} |
| joshdavy | 9:96969b1c6bde | 218 | }; |
| joshdavy | 9:96969b1c6bde | 219 | |
| joshdavy | 10:58cf89dd878c | 220 | const LevelDefinition level_8 = { |
| joshdavy | 10:58cf89dd878c | 221 | // Define Blocks |
| joshdavy | 10:58cf89dd878c | 222 | { |
| joshdavy | 10:58cf89dd878c | 223 | {{10,10},{64,14}}, |
| joshdavy | 10:58cf89dd878c | 224 | {{20,0},{22,14}}, |
| joshdavy | 10:58cf89dd878c | 225 | |
| joshdavy | 10:58cf89dd878c | 226 | {{0,40},{10,44}}, |
| joshdavy | 10:58cf89dd878c | 227 | |
| joshdavy | 10:58cf89dd878c | 228 | |
| joshdavy | 10:58cf89dd878c | 229 | {{20,20},{24,48}}, |
| joshdavy | 10:58cf89dd878c | 230 | {{36,14},{40,32}}, |
| joshdavy | 10:58cf89dd878c | 231 | {{50,20},{54,48}}, |
| joshdavy | 10:58cf89dd878c | 232 | {{60,14},{64,32}}, |
| joshdavy | 10:58cf89dd878c | 233 | |
| joshdavy | 10:58cf89dd878c | 234 | {{66,0},{84,2}}, |
| joshdavy | 10:58cf89dd878c | 235 | |
| joshdavy | 10:58cf89dd878c | 236 | }, |
| joshdavy | 10:58cf89dd878c | 237 | // Number Of Blocks |
| joshdavy | 10:58cf89dd878c | 238 | 8, |
| joshdavy | 10:58cf89dd878c | 239 | // Moving Blocks |
| joshdavy | 10:58cf89dd878c | 240 | { |
| joshdavy | 10:58cf89dd878c | 241 | {2,false,70}, |
| joshdavy | 10:58cf89dd878c | 242 | }, |
| joshdavy | 10:58cf89dd878c | 243 | // Number Of Moving blocks |
| joshdavy | 10:58cf89dd878c | 244 | 1, |
| joshdavy | 10:58cf89dd878c | 245 | // Initial Position |
| joshdavy | 10:58cf89dd878c | 246 | {10,0}, |
| joshdavy | 10:58cf89dd878c | 247 | // Goal |
| joshdavy | 10:58cf89dd878c | 248 | {24,-1} |
| joshdavy | 10:58cf89dd878c | 249 | }; |
| joshdavy | 10:58cf89dd878c | 250 | |
| joshdavy | 10:58cf89dd878c | 251 | const LevelDefinition level_9 = { |
| joshdavy | 10:58cf89dd878c | 252 | // Define Blocks |
| joshdavy | 10:58cf89dd878c | 253 | { |
| joshdavy | 10:58cf89dd878c | 254 | {{0,30},{10,48}}, |
| joshdavy | 10:58cf89dd878c | 255 | {{10,44},{18,48}}, |
| joshdavy | 10:58cf89dd878c | 256 | {{24,44},{84,48}}, |
| joshdavy | 10:58cf89dd878c | 257 | {{12,10},{20,14}}, |
| joshdavy | 10:58cf89dd878c | 258 | {{2,0},{18,4}} |
| joshdavy | 10:58cf89dd878c | 259 | |
| joshdavy | 10:58cf89dd878c | 260 | |
| joshdavy | 10:58cf89dd878c | 261 | |
| joshdavy | 10:58cf89dd878c | 262 | }, |
| joshdavy | 10:58cf89dd878c | 263 | // Number Of Blocks |
| joshdavy | 10:58cf89dd878c | 264 | 4, |
| joshdavy | 10:58cf89dd878c | 265 | // Moving Blocks |
| joshdavy | 10:58cf89dd878c | 266 | { |
| joshdavy | 10:58cf89dd878c | 267 | {4,false,30}, |
| joshdavy | 10:58cf89dd878c | 268 | }, |
| joshdavy | 10:58cf89dd878c | 269 | // Number Of Moving blocks |
| joshdavy | 10:58cf89dd878c | 270 | 1, |
| joshdavy | 10:58cf89dd878c | 271 | // Initial Position |
| joshdavy | 10:58cf89dd878c | 272 | {10,30}, |
| joshdavy | 10:58cf89dd878c | 273 | // Goal |
| joshdavy | 10:58cf89dd878c | 274 | {84,48} |
| joshdavy | 10:58cf89dd878c | 275 | }; |
| joshdavy | 10:58cf89dd878c | 276 |