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