Thomas Foster 201 096 550 Re published. Please check time of final commit

Dependencies:   mbed N5110_tf

Committer:
el17ttds
Date:
Sun May 12 16:31:45 2019 +0000
Revision:
11:fd7f7b531e50
Parent:
9:3a0194c87afe
Final submission. I have read and agreed with Statement of Academic Integrity.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
el17ttds 8:d1c04f0e4890 1 /*
el17ttds 8:d1c04f0e4890 2 ELEC2645 Embedded Systems Project
el17ttds 8:d1c04f0e4890 3 School of Electronic & Electrical Engineering
el17ttds 8:d1c04f0e4890 4 University of Leeds
el17ttds 8:d1c04f0e4890 5 Name: Thomas Foster
el17ttds 8:d1c04f0e4890 6 Username: el17ttds
el17ttds 8:d1c04f0e4890 7 Student ID Number: 201096550
el17ttds 8:d1c04f0e4890 8 Date: 11 / 05 / 2019
el17ttds 8:d1c04f0e4890 9 */
el17ttds 8:d1c04f0e4890 10
el17ttds 9:3a0194c87afe 11 #include "main.h"
el17ttds 9:3a0194c87afe 12
el17ttds 0:7769e2ad5d7a 13 /////////////// objects ///////////////
el17ttds 0:7769e2ad5d7a 14 N5110 lcd(PTC9,PTC0,PTC7,PTD2,PTD1,PTC11);
el17ttds 0:7769e2ad5d7a 15 Gamepad pad;
el17ttds 2:ee9b361ba6df 16 Engine engine;
el17ttds 0:7769e2ad5d7a 17
el17ttds 0:7769e2ad5d7a 18 int main() {
el17ttds 9:3a0194c87afe 19 lcd.init();
el17ttds 9:3a0194c87afe 20 pad.init();
el17ttds 9:3a0194c87afe 21 opening();
el17ttds 0:7769e2ad5d7a 22 welcome();
el17ttds 9:3a0194c87afe 23 menu();
el17ttds 3:3d35ab70b565 24
el17ttds 9:3a0194c87afe 25 lcd.printString("PLEASE RESET",0,5);
el17ttds 4:3446009e2f38 26 lcd.refresh();
el17ttds 0:7769e2ad5d7a 27 }
el17ttds 0:7769e2ad5d7a 28
el17ttds 0:7769e2ad5d7a 29 void init() {
el17ttds 8:d1c04f0e4890 30 health = 3;
el17ttds 8:d1c04f0e4890 31 score = 0;
el17ttds 7:08f78909dda7 32 // initialise display and peripherals
el17ttds 7:08f78909dda7 33 lcd.init();
el17ttds 7:08f78909dda7 34 pad.init();
el17ttds 3:3d35ab70b565 35
el17ttds 0:7769e2ad5d7a 36 // initialise any in game functions (e.g: sprites)
el17ttds 8:d1c04f0e4890 37 engine.init(MAP_WIDTH,MAP_HEIGHT,SCREEN_WIDTH,SCREEN_HEIGHT);
el17ttds 0:7769e2ad5d7a 38 }
el17ttds 0:7769e2ad5d7a 39
el17ttds 9:3a0194c87afe 40 void opening() {
el17ttds 9:3a0194c87afe 41 int happy[11][11] = {
el17ttds 9:3a0194c87afe 42 {0,0,1,1,1,1,1,1,1,0,0},
el17ttds 9:3a0194c87afe 43 {0,1,1,0,0,0,0,0,1,1,0},
el17ttds 9:3a0194c87afe 44 {1,1,0,0,0,0,0,0,0,1,1},
el17ttds 9:3a0194c87afe 45 {1,0,0,1,1,0,1,1,0,0,1},
el17ttds 9:3a0194c87afe 46 {1,0,0,1,1,0,1,1,0,0,1},
el17ttds 9:3a0194c87afe 47 {1,0,0,0,0,0,0,0,0,0,1},
el17ttds 9:3a0194c87afe 48 {1,0,1,1,0,0,0,1,1,0,1},
el17ttds 9:3a0194c87afe 49 {1,0,0,1,1,0,1,1,0,0,1},
el17ttds 9:3a0194c87afe 50 {1,1,0,0,1,1,1,0,0,1,1},
el17ttds 9:3a0194c87afe 51 {0,1,1,0,0,0,0,0,1,1,0},
el17ttds 9:3a0194c87afe 52 {0,0,1,1,1,1,1,1,1,0,0},
el17ttds 9:3a0194c87afe 53 };
el17ttds 9:3a0194c87afe 54 int mad[11][11] = {
el17ttds 9:3a0194c87afe 55 {0,0,1,1,1,1,1,1,1,0,0},
el17ttds 9:3a0194c87afe 56 {0,1,1,0,0,0,0,0,1,1,0},
el17ttds 9:3a0194c87afe 57 {1,1,0,0,0,0,0,0,0,1,1},
el17ttds 9:3a0194c87afe 58 {1,0,0,1,1,0,1,1,0,0,1},
el17ttds 9:3a0194c87afe 59 {1,0,0,1,1,0,1,1,0,0,1},
el17ttds 9:3a0194c87afe 60 {1,0,0,0,0,0,0,0,0,0,1},
el17ttds 9:3a0194c87afe 61 {1,0,0,1,1,1,1,1,0,0,1},
el17ttds 9:3a0194c87afe 62 {1,0,0,1,1,1,1,1,0,0,1},
el17ttds 9:3a0194c87afe 63 {1,1,0,1,1,1,1,1,0,1,1},
el17ttds 9:3a0194c87afe 64 {0,1,1,0,0,0,0,0,1,1,0},
el17ttds 9:3a0194c87afe 65 {0,0,1,1,1,1,1,1,1,0,0},
el17ttds 9:3a0194c87afe 66 };
el17ttds 9:3a0194c87afe 67 int eye[21][21] = {
el17ttds 9:3a0194c87afe 68 {0,0,0,0,0,0,0,1,1,1,1,1,1,1,0,0,0,0,0,0,0},
el17ttds 9:3a0194c87afe 69 {0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0},
el17ttds 9:3a0194c87afe 70 {0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0},
el17ttds 9:3a0194c87afe 71 {0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0},
el17ttds 9:3a0194c87afe 72 {0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0},
el17ttds 9:3a0194c87afe 73 {0,1,1,1,1,1,1,1,0,0,0,0,0,1,1,1,1,1,1,1,0},
el17ttds 9:3a0194c87afe 74 {0,1,1,1,1,1,0,0,0,0,0,0,0,0,0,1,1,1,1,1,0},
el17ttds 9:3a0194c87afe 75 {1,1,1,1,1,0,0,0,0,1,1,1,0,0,0,0,1,1,1,1,1},
el17ttds 9:3a0194c87afe 76 {1,1,1,1,0,0,0,0,1,1,1,1,1,0,0,0,0,1,1,1,1},
el17ttds 9:3a0194c87afe 77 {1,1,1,0,0,0,0,1,1,1,1,1,1,1,0,0,0,0,1,1,1},
el17ttds 9:3a0194c87afe 78 {1,1,0,0,0,0,1,1,1,1,1,1,1,1,1,0,0,0,0,1,1},
el17ttds 9:3a0194c87afe 79 {1,1,1,0,0,0,0,1,1,1,1,1,1,1,0,0,0,0,1,1,1},
el17ttds 9:3a0194c87afe 80 {1,1,1,1,0,0,0,0,1,1,1,1,1,0,0,0,0,1,1,1,1},
el17ttds 9:3a0194c87afe 81 {1,1,1,1,1,0,0,0,0,1,1,1,0,0,0,0,1,1,1,1,1},
el17ttds 9:3a0194c87afe 82 {0,1,1,1,1,1,0,0,0,0,0,0,0,0,0,1,1,1,1,1,0},
el17ttds 9:3a0194c87afe 83 {0,1,1,1,1,1,1,1,0,0,0,0,0,1,1,1,1,1,1,1,0},
el17ttds 9:3a0194c87afe 84 {0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0},
el17ttds 9:3a0194c87afe 85 {0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0},
el17ttds 9:3a0194c87afe 86 {0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0},
el17ttds 9:3a0194c87afe 87 {0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0},
el17ttds 9:3a0194c87afe 88 {0,0,0,0,0,0,0,1,1,1,1,1,1,1,0,0,0,0,0,0,0},
el17ttds 9:3a0194c87afe 89 };
el17ttds 9:3a0194c87afe 90 lcd.drawSprite(37, 19, 11, 11, (int *)happy);
el17ttds 9:3a0194c87afe 91 lcd.refresh(),
el17ttds 9:3a0194c87afe 92 wait(1.0);
el17ttds 9:3a0194c87afe 93 for(int i = 84; i >= 0; i--) {
el17ttds 9:3a0194c87afe 94 lcd.clear();
el17ttds 9:3a0194c87afe 95 lcd.drawSprite(37, 19, 11, 11, (int *)happy);
el17ttds 9:3a0194c87afe 96 lcd.drawRect(i, 0, 84, 48, FILL_BLACK);
el17ttds 9:3a0194c87afe 97 lcd.refresh();
el17ttds 9:3a0194c87afe 98 wait(0.07);
el17ttds 9:3a0194c87afe 99 }
el17ttds 9:3a0194c87afe 100 wait(0.5);
el17ttds 9:3a0194c87afe 101 pad.tone(2000, 2);
el17ttds 9:3a0194c87afe 102 lcd.setBrightness(0.5);
el17ttds 9:3a0194c87afe 103 lcd.refresh();
el17ttds 9:3a0194c87afe 104 wait(1.0);
el17ttds 9:3a0194c87afe 105 for(int i = 0; i < 85; i++) {
el17ttds 9:3a0194c87afe 106 lcd.clear();
el17ttds 9:3a0194c87afe 107 lcd.drawSprite(i - 69, 1, 21, 21, (int *)eye);
el17ttds 9:3a0194c87afe 108 lcd.drawSprite(i - 69, 27, 21, 21, (int *)eye);
el17ttds 9:3a0194c87afe 109 lcd.drawSprite(49, 1, 21, 21, (int *)eye);
el17ttds 9:3a0194c87afe 110 lcd.drawSprite(49, 27, 21, 21, (int *)eye);
el17ttds 9:3a0194c87afe 111 lcd.drawSprite(37, 19, 11, 11, (int *)happy);
el17ttds 9:3a0194c87afe 112 lcd.drawRect(i, 0, 84, 48, FILL_BLACK);
el17ttds 9:3a0194c87afe 113 lcd.refresh();
el17ttds 9:3a0194c87afe 114 wait(0.02);
el17ttds 9:3a0194c87afe 115 }
el17ttds 9:3a0194c87afe 116 wait(1.5);
el17ttds 9:3a0194c87afe 117 lcd.clear();
el17ttds 9:3a0194c87afe 118 lcd.printString(" THEY ",0,0);
el17ttds 9:3a0194c87afe 119 lcd.printString(" SAW ",0,1);
el17ttds 9:3a0194c87afe 120 lcd.printString(" WHAT ",0,2);
el17ttds 9:3a0194c87afe 121 lcd.printString(" YOU ",0,3);
el17ttds 9:3a0194c87afe 122 lcd.printString(" DID ",0,4);
el17ttds 9:3a0194c87afe 123 lcd.printString(" !!! ",0,5);
el17ttds 9:3a0194c87afe 124 lcd.refresh();
el17ttds 9:3a0194c87afe 125 wait(2);
el17ttds 9:3a0194c87afe 126 for(int i = 0; i < 40; i++) {
el17ttds 9:3a0194c87afe 127 lcd.clear();
el17ttds 9:3a0194c87afe 128 lcd.drawSprite(15 - i, 1, 21, 21, (int *)eye);
el17ttds 9:3a0194c87afe 129 lcd.drawSprite(15 - i, 27, 21, 21, (int *)eye);
el17ttds 9:3a0194c87afe 130 lcd.drawSprite(49 + i, 1, 21, 21, (int *)eye);
el17ttds 9:3a0194c87afe 131 lcd.drawSprite(49 + i, 27, 21, 21, (int *)eye);
el17ttds 9:3a0194c87afe 132 lcd.drawSprite(37, 19, 11, 11, (int *)mad);
el17ttds 9:3a0194c87afe 133 lcd.refresh();
el17ttds 9:3a0194c87afe 134 wait(0.1);
el17ttds 9:3a0194c87afe 135 }
el17ttds 9:3a0194c87afe 136 lcd.clear();
el17ttds 9:3a0194c87afe 137 lcd.drawSprite(37, 19, 11, 11, (int *)mad);
el17ttds 9:3a0194c87afe 138 lcd.printString("AND THEY STOLE",0,0);
el17ttds 9:3a0194c87afe 139 lcd.printString(" YOUR BRIBES! ",0,5);
el17ttds 9:3a0194c87afe 140 lcd.refresh();
el17ttds 9:3a0194c87afe 141 wait(2.0);
el17ttds 9:3a0194c87afe 142
el17ttds 9:3a0194c87afe 143 lcd.clear();
el17ttds 9:3a0194c87afe 144 lcd.printString(" KEEP ",0,0);
el17ttds 9:3a0194c87afe 145 lcd.printString(" THE ",0,1);
el17ttds 9:3a0194c87afe 146 lcd.printString(" SECRET ",0,2);
el17ttds 9:3a0194c87afe 147 lcd.printString(" SAFE ",0,3);
el17ttds 9:3a0194c87afe 148 lcd.printString(" !!! ",0,4);
el17ttds 9:3a0194c87afe 149 lcd.refresh();
el17ttds 9:3a0194c87afe 150 wait(1.5);
el17ttds 9:3a0194c87afe 151
el17ttds 9:3a0194c87afe 152 lcd.clear();
el17ttds 9:3a0194c87afe 153 lcd.printString(" KILL ",0,0);
el17ttds 9:3a0194c87afe 154 lcd.refresh();
el17ttds 9:3a0194c87afe 155 wait(0.6);
el17ttds 9:3a0194c87afe 156 lcd.printString(" THEM ",0,2);
el17ttds 9:3a0194c87afe 157 lcd.refresh();
el17ttds 9:3a0194c87afe 158 wait(0.6);
el17ttds 9:3a0194c87afe 159 lcd.printString(" ALL! ",0,4);
el17ttds 9:3a0194c87afe 160 lcd.refresh();
el17ttds 9:3a0194c87afe 161 wait(1.0);
el17ttds 9:3a0194c87afe 162 lcd.clear();
el17ttds 9:3a0194c87afe 163 }
el17ttds 9:3a0194c87afe 164
el17ttds 0:7769e2ad5d7a 165 void welcome() {
el17ttds 9:3a0194c87afe 166 lcd.printString(" THE SECRET!! ",0,0);
el17ttds 0:7769e2ad5d7a 167 lcd.refresh();
el17ttds 0:7769e2ad5d7a 168 wait(1.0);
el17ttds 0:7769e2ad5d7a 169 lcd.printString("By Thomas",0,2);
el17ttds 0:7769e2ad5d7a 170 lcd.printString("Foster",0,3);
el17ttds 0:7769e2ad5d7a 171 lcd.refresh();
el17ttds 0:7769e2ad5d7a 172 wait(2.0);
el17ttds 3:3d35ab70b565 173
el17ttds 0:7769e2ad5d7a 174 while (pad.check_event(Gamepad::START_PRESSED) == false) {
el17ttds 7:08f78909dda7 175 lcd.printString("Press Start ",0,5);
el17ttds 0:7769e2ad5d7a 176 lcd.refresh();
el17ttds 0:7769e2ad5d7a 177 wait(0.2);
el17ttds 7:08f78909dda7 178 lcd.printString("Press Start. ",0,5);
el17ttds 0:7769e2ad5d7a 179 lcd.refresh();
el17ttds 0:7769e2ad5d7a 180 wait(0.2);
el17ttds 7:08f78909dda7 181 lcd.printString("Press Start.. ",0,5);
el17ttds 0:7769e2ad5d7a 182 lcd.refresh();
el17ttds 0:7769e2ad5d7a 183 wait(0.2);
el17ttds 7:08f78909dda7 184 lcd.printString("Press Start... ",0,5);
el17ttds 0:7769e2ad5d7a 185 wait(0.2);
el17ttds 0:7769e2ad5d7a 186 }
el17ttds 0:7769e2ad5d7a 187 }
el17ttds 0:7769e2ad5d7a 188
el17ttds 9:3a0194c87afe 189 void menu() {
el17ttds 3:3d35ab70b565 190
el17ttds 9:3a0194c87afe 191 option = 0;
el17ttds 0:7769e2ad5d7a 192 lcd.init();
el17ttds 3:3d35ab70b565 193
el17ttds 9:3a0194c87afe 194 while(option == 0) {
el17ttds 3:3d35ab70b565 195
el17ttds 9:3a0194c87afe 196 lcd.printString("A - Play Now",0,2);
el17ttds 9:3a0194c87afe 197 lcd.printString("B - Tutorial",0,4);
el17ttds 0:7769e2ad5d7a 198 lcd.refresh();
el17ttds 3:3d35ab70b565 199
el17ttds 0:7769e2ad5d7a 200 if (pad.check_event(Gamepad::A_PRESSED) == true) {
el17ttds 9:3a0194c87afe 201 option = 1;
el17ttds 0:7769e2ad5d7a 202 } else if (pad.check_event(Gamepad::B_PRESSED) == true) {
el17ttds 9:3a0194c87afe 203 option = 2;
el17ttds 0:7769e2ad5d7a 204 }
el17ttds 3:3d35ab70b565 205
el17ttds 0:7769e2ad5d7a 206 wait(0.2);
el17ttds 0:7769e2ad5d7a 207 }
el17ttds 9:3a0194c87afe 208 lcd.init();
el17ttds 9:3a0194c87afe 209 pad.init();
el17ttds 9:3a0194c87afe 210 if (option == 1) {
el17ttds 0:7769e2ad5d7a 211 lcd.printString(" Play game? ",0,0);
el17ttds 9:3a0194c87afe 212 ask();
el17ttds 9:3a0194c87afe 213 } else if (option == 2) {
el17ttds 0:7769e2ad5d7a 214 lcd.printString("Play tutorial?",0,0);
el17ttds 9:3a0194c87afe 215 ask();
el17ttds 1:8e319bd14b84 216 }
el17ttds 1:8e319bd14b84 217 }
el17ttds 1:8e319bd14b84 218
el17ttds 9:3a0194c87afe 219 void ask() {
el17ttds 9:3a0194c87afe 220 begin = 0;
el17ttds 9:3a0194c87afe 221 lcd.printString("Are you sure?",0,3);
el17ttds 9:3a0194c87afe 222 lcd.printString("Back? Start?",0,5);
el17ttds 9:3a0194c87afe 223 lcd.refresh();
el17ttds 9:3a0194c87afe 224 while (begin == 0) {
el17ttds 9:3a0194c87afe 225 if (pad.check_event(Gamepad::START_PRESSED) == true) {
el17ttds 9:3a0194c87afe 226 begin = 1;
el17ttds 9:3a0194c87afe 227 } else if(pad.check_event(Gamepad::BACK_PRESSED) == true) {
el17ttds 9:3a0194c87afe 228 begin = -1;
el17ttds 9:3a0194c87afe 229 }
el17ttds 9:3a0194c87afe 230 wait(0.2);
el17ttds 9:3a0194c87afe 231 }
el17ttds 9:3a0194c87afe 232 init();
el17ttds 9:3a0194c87afe 233 if (begin == -1) {
el17ttds 9:3a0194c87afe 234 menu();
el17ttds 9:3a0194c87afe 235 } else {
el17ttds 1:8e319bd14b84 236 init();
el17ttds 9:3a0194c87afe 237 if (option == 1) {
el17ttds 9:3a0194c87afe 238 gameLoop();
el17ttds 0:7769e2ad5d7a 239 } else {
el17ttds 9:3a0194c87afe 240 tutorial();
el17ttds 0:7769e2ad5d7a 241 }
el17ttds 9:3a0194c87afe 242 }
el17ttds 7:08f78909dda7 243 }
el17ttds 3:3d35ab70b565 244
el17ttds 7:08f78909dda7 245 void gameLoop() {
el17ttds 9:3a0194c87afe 246 pad.tone(750, 1.0);
el17ttds 8:d1c04f0e4890 247 while ( (health > 0) && (pad.check_event(Gamepad::START_PRESSED) == false) ) {
el17ttds 7:08f78909dda7 248 lcd.refresh();
el17ttds 7:08f78909dda7 249 engine.read(pad);
el17ttds 8:d1c04f0e4890 250 engine.write(MAX_SPEED, pad, lcd);
el17ttds 7:08f78909dda7 251 engine.render(lcd);
el17ttds 8:d1c04f0e4890 252 health = engine.get_health();
el17ttds 7:08f78909dda7 253 wait(0.1);
el17ttds 7:08f78909dda7 254 }
el17ttds 8:d1c04f0e4890 255 wait(0.2);
el17ttds 9:3a0194c87afe 256 score = engine.get_score();
el17ttds 9:3a0194c87afe 257 buffer[4];
el17ttds 9:3a0194c87afe 258 sprintf(buffer, " %2d", score);
el17ttds 8:d1c04f0e4890 259 if (health > 0) {
el17ttds 9:3a0194c87afe 260 paused();
el17ttds 7:08f78909dda7 261 } else {
el17ttds 9:3a0194c87afe 262 died();
el17ttds 7:08f78909dda7 263 }
el17ttds 1:8e319bd14b84 264 }
el17ttds 1:8e319bd14b84 265
el17ttds 9:3a0194c87afe 266 void paused() {
el17ttds 9:3a0194c87afe 267 while (pad.check_event(Gamepad::A_PRESSED) == false) {
el17ttds 9:3a0194c87afe 268 lcd.clear();
el17ttds 9:3a0194c87afe 269 lcd.printString(" PAUSED ", 0, 0);
el17ttds 9:3a0194c87afe 270 lcd.printString(buffer, 0, 3);
el17ttds 9:3a0194c87afe 271 lcd.printString("coins", 28, 3);
el17ttds 9:3a0194c87afe 272 lcd.refresh();
el17ttds 9:3a0194c87afe 273 wait(0.5);
el17ttds 9:3a0194c87afe 274 lcd.printString("Press A", 0, 5);
el17ttds 9:3a0194c87afe 275 lcd.refresh();
el17ttds 9:3a0194c87afe 276 wait(0.5);
el17ttds 9:3a0194c87afe 277 }
el17ttds 9:3a0194c87afe 278 gameLoop();
el17ttds 9:3a0194c87afe 279 }
el17ttds 3:3d35ab70b565 280
el17ttds 9:3a0194c87afe 281 void died() {
el17ttds 9:3a0194c87afe 282 wait(1.0);
el17ttds 11:fd7f7b531e50 283 pad.init();
el17ttds 9:3a0194c87afe 284 lcd.clear();
el17ttds 9:3a0194c87afe 285 lcd.printString(" KO ", 0, 0);
el17ttds 9:3a0194c87afe 286 lcd.refresh();
el17ttds 9:3a0194c87afe 287 for (int i = 0; i < 10; i++) {
el17ttds 9:3a0194c87afe 288 lcd.setBrightness(1 - (i / 10) );
el17ttds 9:3a0194c87afe 289 wait(0.15);
el17ttds 9:3a0194c87afe 290 }
el17ttds 9:3a0194c87afe 291 lcd.init();
el17ttds 9:3a0194c87afe 292 pad.leds_on();
el17ttds 9:3a0194c87afe 293 lcd.printString("EVERYONE KNOWS", 0, 0);
el17ttds 9:3a0194c87afe 294 lcd.printString(buffer, 0, 3);
el17ttds 9:3a0194c87afe 295 lcd.printString("coins", 28, 3);
el17ttds 9:3a0194c87afe 296 lcd.printString("recollected", 0, 4);
el17ttds 9:3a0194c87afe 297 while(pad.check_event(Gamepad::A_PRESSED) == false) {
el17ttds 9:3a0194c87afe 298 lcd.printString("Press A.", 0, 5);
el17ttds 1:8e319bd14b84 299 lcd.refresh();
el17ttds 9:3a0194c87afe 300 wait(0.1);
el17ttds 9:3a0194c87afe 301 lcd.printString("Press A .", 0, 5);
el17ttds 9:3a0194c87afe 302 lcd.refresh();
el17ttds 9:3a0194c87afe 303 wait(0.1);
el17ttds 9:3a0194c87afe 304 lcd.printString("Press A .", 0, 5);
el17ttds 9:3a0194c87afe 305 lcd.refresh();
el17ttds 9:3a0194c87afe 306 wait(0.1);
el17ttds 9:3a0194c87afe 307 }
el17ttds 9:3a0194c87afe 308 menu();
el17ttds 1:8e319bd14b84 309 }
el17ttds 1:8e319bd14b84 310
el17ttds 9:3a0194c87afe 311 void tutorial() {
el17ttds 9:3a0194c87afe 312 int mad[11][11] = {
el17ttds 9:3a0194c87afe 313 {0,0,1,1,1,1,1,1,1,0,0},
el17ttds 9:3a0194c87afe 314 {0,1,1,0,0,0,0,0,1,1,0},
el17ttds 9:3a0194c87afe 315 {1,1,0,0,0,0,0,0,0,1,1},
el17ttds 9:3a0194c87afe 316 {1,0,0,1,1,0,1,1,0,0,1},
el17ttds 9:3a0194c87afe 317 {1,0,0,1,1,0,1,1,0,0,1},
el17ttds 9:3a0194c87afe 318 {1,0,0,0,0,0,0,0,0,0,1},
el17ttds 9:3a0194c87afe 319 {1,0,0,1,1,1,1,1,0,0,1},
el17ttds 9:3a0194c87afe 320 {1,0,0,1,1,1,1,1,0,0,1},
el17ttds 9:3a0194c87afe 321 {1,1,0,1,1,1,1,1,0,1,1},
el17ttds 9:3a0194c87afe 322 {0,1,1,0,0,0,0,0,1,1,0},
el17ttds 9:3a0194c87afe 323 {0,0,1,1,1,1,1,1,1,0,0},
el17ttds 9:3a0194c87afe 324 };
el17ttds 9:3a0194c87afe 325 int bribe[11][11] = {
el17ttds 9:3a0194c87afe 326 {0,0,0,1,1,1,1,1,0,0,0},
el17ttds 9:3a0194c87afe 327 {0,0,1,1,0,0,0,1,1,0,0},
el17ttds 9:3a0194c87afe 328 {0,1,1,0,0,1,0,0,1,1,0},
el17ttds 9:3a0194c87afe 329 {1,1,0,1,1,1,1,1,0,1,1},
el17ttds 9:3a0194c87afe 330 {1,0,0,1,0,1,0,0,0,0,1},
el17ttds 9:3a0194c87afe 331 {1,0,0,1,1,1,1,1,0,0,1},
el17ttds 9:3a0194c87afe 332 {1,0,0,0,0,1,0,1,0,0,1},
el17ttds 9:3a0194c87afe 333 {1,1,0,1,1,1,1,1,0,1,1},
el17ttds 9:3a0194c87afe 334 {0,1,1,0,0,1,0,0,1,1,0},
el17ttds 9:3a0194c87afe 335 {0,0,1,1,0,0,0,1,1,0,0},
el17ttds 9:3a0194c87afe 336 {0,0,0,1,1,1,1,1,0,0,0},
el17ttds 9:3a0194c87afe 337 };
el17ttds 9:3a0194c87afe 338 int eye[21][21] = {
el17ttds 9:3a0194c87afe 339 {0,0,0,0,0,0,0,1,1,1,1,1,1,1,0,0,0,0,0,0,0},
el17ttds 9:3a0194c87afe 340 {0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0},
el17ttds 9:3a0194c87afe 341 {0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0},
el17ttds 9:3a0194c87afe 342 {0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0},
el17ttds 9:3a0194c87afe 343 {0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0},
el17ttds 9:3a0194c87afe 344 {0,1,1,1,1,1,1,1,0,0,0,0,0,1,1,1,1,1,1,1,0},
el17ttds 9:3a0194c87afe 345 {0,1,1,1,1,1,0,0,0,0,0,0,0,0,0,1,1,1,1,1,0},
el17ttds 9:3a0194c87afe 346 {1,1,1,1,1,0,0,0,0,1,1,1,0,0,0,0,1,1,1,1,1},
el17ttds 9:3a0194c87afe 347 {1,1,1,1,0,0,0,0,1,1,1,1,1,0,0,0,0,1,1,1,1},
el17ttds 9:3a0194c87afe 348 {1,1,1,0,0,0,0,1,1,1,1,1,1,1,0,0,0,0,1,1,1},
el17ttds 9:3a0194c87afe 349 {1,1,0,0,0,0,1,1,1,1,1,1,1,1,1,0,0,0,0,1,1},
el17ttds 9:3a0194c87afe 350 {1,1,1,0,0,0,0,1,1,1,1,1,1,1,0,0,0,0,1,1,1},
el17ttds 9:3a0194c87afe 351 {1,1,1,1,0,0,0,0,1,1,1,1,1,0,0,0,0,1,1,1,1},
el17ttds 9:3a0194c87afe 352 {1,1,1,1,1,0,0,0,0,1,1,1,0,0,0,0,1,1,1,1,1},
el17ttds 9:3a0194c87afe 353 {0,1,1,1,1,1,0,0,0,0,0,0,0,0,0,1,1,1,1,1,0},
el17ttds 9:3a0194c87afe 354 {0,1,1,1,1,1,1,1,0,0,0,0,0,1,1,1,1,1,1,1,0},
el17ttds 9:3a0194c87afe 355 {0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0},
el17ttds 9:3a0194c87afe 356 {0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0},
el17ttds 9:3a0194c87afe 357 {0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0},
el17ttds 9:3a0194c87afe 358 {0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0},
el17ttds 9:3a0194c87afe 359 {0,0,0,0,0,0,0,1,1,1,1,1,1,1,0,0,0,0,0,0,0},
el17ttds 9:3a0194c87afe 360 };
el17ttds 9:3a0194c87afe 361 lcd.printString(" Tutorial!! ",0,0);
el17ttds 9:3a0194c87afe 362 lcd.refresh();
el17ttds 9:3a0194c87afe 363 wait(1.0);
el17ttds 9:3a0194c87afe 364 while (pad.check_event(Gamepad::B_PRESSED) == false) {
el17ttds 9:3a0194c87afe 365 lcd.clear();
el17ttds 9:3a0194c87afe 366 lcd.printString("Shoot The Eyes", 0, 1);
el17ttds 9:3a0194c87afe 367 lcd.printString("To Keep Your", 0, 2);
el17ttds 9:3a0194c87afe 368 lcd.printString("Secret!", 0, 3);
el17ttds 9:3a0194c87afe 369 lcd.drawSprite(42, 23, 21, 21, (int *)eye);
el17ttds 9:3a0194c87afe 370 lcd.refresh();
el17ttds 9:3a0194c87afe 371 wait(0.5);
el17ttds 9:3a0194c87afe 372 lcd.printString("Press B", 0, 5);
el17ttds 9:3a0194c87afe 373 lcd.refresh();
el17ttds 9:3a0194c87afe 374 wait(0.5);
el17ttds 9:3a0194c87afe 375 }
el17ttds 9:3a0194c87afe 376 wait(0.3);
el17ttds 9:3a0194c87afe 377 while (pad.check_event(Gamepad::B_PRESSED) == false) {
el17ttds 9:3a0194c87afe 378 lcd.clear();
el17ttds 9:3a0194c87afe 379 lcd.printString("Use Joystick", 0, 1);
el17ttds 9:3a0194c87afe 380 lcd.printString("To Move!", 0, 2);
el17ttds 9:3a0194c87afe 381 lcd.drawSprite(37, 23, 11, 11, (int *)mad);
el17ttds 9:3a0194c87afe 382 lcd.refresh();
el17ttds 9:3a0194c87afe 383 wait(0.5);
el17ttds 9:3a0194c87afe 384 lcd.printString("Press B", 0, 5);
el17ttds 0:7769e2ad5d7a 385 lcd.refresh();
el17ttds 9:3a0194c87afe 386 wait(0.5);
el17ttds 9:3a0194c87afe 387 }
el17ttds 9:3a0194c87afe 388 wait(0.3);
el17ttds 9:3a0194c87afe 389 while (pad.check_event(Gamepad::B_PRESSED) == false) {
el17ttds 9:3a0194c87afe 390 lcd.clear();
el17ttds 9:3a0194c87afe 391 lcd.printString("A To Shoot", 0, 1);
el17ttds 9:3a0194c87afe 392 lcd.printString("Forward", 0, 2);
el17ttds 9:3a0194c87afe 393 lcd.drawSprite(37, 23, 11, 11, (int *)mad);
el17ttds 9:3a0194c87afe 394 lcd.refresh();
el17ttds 9:3a0194c87afe 395 wait(0.5);
el17ttds 9:3a0194c87afe 396 lcd.printString("Press B", 0, 5);
el17ttds 9:3a0194c87afe 397 lcd.refresh();
el17ttds 9:3a0194c87afe 398 wait(0.5);
el17ttds 9:3a0194c87afe 399 }
el17ttds 9:3a0194c87afe 400 wait(0.3);
el17ttds 9:3a0194c87afe 401 while (pad.check_event(Gamepad::B_PRESSED) == false) {
el17ttds 9:3a0194c87afe 402 lcd.clear();
el17ttds 9:3a0194c87afe 403 lcd.printString("B To Shoot", 0, 1);
el17ttds 9:3a0194c87afe 404 lcd.printString("Backwards", 0, 2);
el17ttds 9:3a0194c87afe 405 lcd.drawSprite(37, 23, 11, 11, (int *)mad);
el17ttds 9:3a0194c87afe 406 lcd.refresh();
el17ttds 9:3a0194c87afe 407 wait(0.5);
el17ttds 9:3a0194c87afe 408 lcd.printString("Press B", 0, 5);
el17ttds 9:3a0194c87afe 409 lcd.refresh();
el17ttds 9:3a0194c87afe 410 wait(0.5);
el17ttds 9:3a0194c87afe 411 }
el17ttds 9:3a0194c87afe 412 wait(0.3);
el17ttds 9:3a0194c87afe 413 while (pad.check_event(Gamepad::B_PRESSED) == false) {
el17ttds 9:3a0194c87afe 414 lcd.clear();
el17ttds 9:3a0194c87afe 415 lcd.printString("AMMO | HEALTH", 0, 1);
el17ttds 9:3a0194c87afe 416 lcd.printString(" LED ", 0,3);
el17ttds 9:3a0194c87afe 417 lcd.printString("123 | 456", 0, 4);
el17ttds 9:3a0194c87afe 418 pad.leds_on();
el17ttds 9:3a0194c87afe 419 lcd.refresh();
el17ttds 9:3a0194c87afe 420 wait(0.5);
el17ttds 9:3a0194c87afe 421 lcd.printString("Press B", 0, 5);
el17ttds 9:3a0194c87afe 422 pad.leds_off();
el17ttds 9:3a0194c87afe 423 lcd.refresh();
el17ttds 9:3a0194c87afe 424 wait(0.5);
el17ttds 9:3a0194c87afe 425 }
el17ttds 9:3a0194c87afe 426 wait(0.3);
el17ttds 9:3a0194c87afe 427 while (pad.check_event(Gamepad::B_PRESSED) == false) {
el17ttds 9:3a0194c87afe 428 lcd.clear();
el17ttds 9:3a0194c87afe 429 lcd.printString("Recover Your", 0, 0);
el17ttds 9:3a0194c87afe 430 lcd.printString("Bribes Quickly", 0,1);
el17ttds 9:3a0194c87afe 431 lcd.printString("From Enemies", 0,2);
el17ttds 9:3a0194c87afe 432 lcd.drawSprite(37, 26, 11, 11, (int *)bribe);
el17ttds 9:3a0194c87afe 433 lcd.refresh();
el17ttds 9:3a0194c87afe 434 wait(0.5);
el17ttds 9:3a0194c87afe 435 lcd.printString("Press B", 0, 5);
el17ttds 9:3a0194c87afe 436 lcd.refresh();
el17ttds 9:3a0194c87afe 437 wait(0.5);
el17ttds 9:3a0194c87afe 438 }
el17ttds 9:3a0194c87afe 439 wait(0.3);
el17ttds 9:3a0194c87afe 440 while (pad.check_event(Gamepad::B_PRESSED) == false) {
el17ttds 9:3a0194c87afe 441 lcd.clear();
el17ttds 9:3a0194c87afe 442 lcd.printString("Difficulty", 0, 1);
el17ttds 9:3a0194c87afe 443 lcd.printString("Increases", 0,2);
el17ttds 9:3a0194c87afe 444 lcd.printString("With Time", 0,3);
el17ttds 9:3a0194c87afe 445 lcd.refresh();
el17ttds 9:3a0194c87afe 446 wait(0.5);
el17ttds 9:3a0194c87afe 447 lcd.printString("Press B", 0, 5);
el17ttds 9:3a0194c87afe 448 lcd.refresh();
el17ttds 9:3a0194c87afe 449 wait(0.5);
el17ttds 9:3a0194c87afe 450 }
el17ttds 9:3a0194c87afe 451 wait(0.3);
el17ttds 9:3a0194c87afe 452 while (pad.check_event(Gamepad::B_PRESSED) == false) {
el17ttds 9:3a0194c87afe 453 lcd.clear();
el17ttds 9:3a0194c87afe 454 lcd.printString("Aim Well", 0, 1);
el17ttds 9:3a0194c87afe 455 lcd.printString("And", 0,2);
el17ttds 9:3a0194c87afe 456 lcd.printString("Stay Alive!", 0,3);
el17ttds 9:3a0194c87afe 457 lcd.refresh();
el17ttds 9:3a0194c87afe 458 wait(0.5);
el17ttds 9:3a0194c87afe 459 lcd.printString("Press B", 0, 5);
el17ttds 9:3a0194c87afe 460 lcd.refresh();
el17ttds 9:3a0194c87afe 461 wait(0.5);
el17ttds 9:3a0194c87afe 462 }
el17ttds 9:3a0194c87afe 463 wait(0.3);
el17ttds 9:3a0194c87afe 464 menu();
el17ttds 0:7769e2ad5d7a 465 }