Josh Davy / Mbed OS Flip_OS_5

Dependencies:   el17jd

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?

UserRevisionLine numberNew 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