Josh Davy / Mbed 2 deprecated Flip

Dependencies:   mbed el17jd

Committer:
joshdavy
Date:
Mon May 06 10:11:42 2019 +0000
Revision:
10:58cf89dd878c
Parent:
9:96969b1c6bde
Child:
11:db27d3838514
Main game done. Documentation to be done next.

Who changed what in which revision?

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