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 |