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