MATH TRIVIA(Simple Version)

Dependencies:   mbed ShiftReg

Committer:
damiakin
Date:
Mon May 03 15:09:04 2021 +0000
Revision:
0:e88a4fbb7247
Final version of project, may add extra features; FINAL VERSION 1.0

Who changed what in which revision?

UserRevisionLine numberNew contents of line
damiakin 0:e88a4fbb7247 1 // ELEC 2645 Project done by Damilola Akinbolu
damiakin 0:e88a4fbb7247 2 // A simple math trivia game designed to test your speed and ability
damiakin 0:e88a4fbb7247 3 // to think on the fly
damiakin 0:e88a4fbb7247 4 // There are 15 questions of VARYING difficulty and a timer as well
damiakin 0:e88a4fbb7247 5 // Hope you enjoy it and good luck!!!!!!!
damiakin 0:e88a4fbb7247 6
damiakin 0:e88a4fbb7247 7 #include "mbed.h"
damiakin 0:e88a4fbb7247 8 #include "ShiftReg.h"
damiakin 0:e88a4fbb7247 9 #include "N5110.h"
damiakin 0:e88a4fbb7247 10 //#include "platform/mbed_thread.h"
damiakin 0:e88a4fbb7247 11 // Screen Display functions
damiakin 0:e88a4fbb7247 12 N5110 lcd(p14,p8,p9,p10,p11,p13,p21);
damiakin 0:e88a4fbb7247 13 // BUTTON CONTROLS
damiakin 0:e88a4fbb7247 14 DigitalIn button_A(p29);
damiakin 0:e88a4fbb7247 15 DigitalIn button_B(p28);
damiakin 0:e88a4fbb7247 16 DigitalIn button_C(p27);
damiakin 0:e88a4fbb7247 17 DigitalIn button_D(p26);
damiakin 0:e88a4fbb7247 18 ShiftReg shift;
damiakin 0:e88a4fbb7247 19 // LED CONTROLS
damiakin 0:e88a4fbb7247 20 // For some reason, the pins on my blue and red led are swapped.
damiakin 0:e88a4fbb7247 21 DigitalOut blue_led(p24);
damiakin 0:e88a4fbb7247 22 DigitalOut green_led(p23);
damiakin 0:e88a4fbb7247 23 DigitalOut red_led(p22);
damiakin 0:e88a4fbb7247 24 void Loading(); // Loading screen
damiakin 0:e88a4fbb7247 25 void Intro(); // Beginning statement in summary
damiakin 0:e88a4fbb7247 26 void Testing(); // Basic instuctions
damiakin 0:e88a4fbb7247 27 void Timing(); // Timer Notification
damiakin 0:e88a4fbb7247 28 void buttons_off(); // Buttons 'not pressed' mode
damiakin 0:e88a4fbb7247 29 void leds_off(); // Default mode: Leds off
damiakin 0:e88a4fbb7247 30 void QuestionBank(); // Stores the questions
damiakin 0:e88a4fbb7247 31 void FinalScore(); // Breakdown of scores
damiakin 0:e88a4fbb7247 32 float x = 0.0;
damiakin 0:e88a4fbb7247 33 float y = 0.0;
damiakin 0:e88a4fbb7247 34 Timer t; // timer
damiakin 0:e88a4fbb7247 35 int counter = 0;
damiakin 0:e88a4fbb7247 36 void ScoreDisplay();
damiakin 0:e88a4fbb7247 37 // QUESTIONS
damiakin 0:e88a4fbb7247 38 void Q1();
damiakin 0:e88a4fbb7247 39 void Q2();
damiakin 0:e88a4fbb7247 40 void Q3();
damiakin 0:e88a4fbb7247 41 void Q4();
damiakin 0:e88a4fbb7247 42 void Q5();
damiakin 0:e88a4fbb7247 43 void Q6();
damiakin 0:e88a4fbb7247 44 void Q7();
damiakin 0:e88a4fbb7247 45 void Q8();
damiakin 0:e88a4fbb7247 46 void Q9();
damiakin 0:e88a4fbb7247 47 void Q10();
damiakin 0:e88a4fbb7247 48 void Q11();
damiakin 0:e88a4fbb7247 49 void Q12();
damiakin 0:e88a4fbb7247 50 void Q13();
damiakin 0:e88a4fbb7247 51 void Q14();
damiakin 0:e88a4fbb7247 52 void Q15();
damiakin 0:e88a4fbb7247 53
damiakin 0:e88a4fbb7247 54 int main()
damiakin 0:e88a4fbb7247 55 {
damiakin 0:e88a4fbb7247 56 buttons_off();
damiakin 0:e88a4fbb7247 57 leds_off();
damiakin 0:e88a4fbb7247 58 lcd.init();
damiakin 0:e88a4fbb7247 59
damiakin 0:e88a4fbb7247 60 shift.write(0x00);
damiakin 0:e88a4fbb7247 61 Loading();
damiakin 0:e88a4fbb7247 62 // PLAYER INSTRUCTIONS
damiakin 0:e88a4fbb7247 63 Intro();
damiakin 0:e88a4fbb7247 64 Testing();
damiakin 0:e88a4fbb7247 65 Timing();
damiakin 0:e88a4fbb7247 66 t.start(); // TIME STARTS
damiakin 0:e88a4fbb7247 67 QuestionBank();
damiakin 0:e88a4fbb7247 68 t.stop(); // ENDING
damiakin 0:e88a4fbb7247 69 wait(2.000);
damiakin 0:e88a4fbb7247 70 FinalScore();
damiakin 0:e88a4fbb7247 71 ScoreDisplay();
damiakin 0:e88a4fbb7247 72 lcd.clear(); // clear buffer at the start of the loop
damiakin 0:e88a4fbb7247 73
damiakin 0:e88a4fbb7247 74
damiakin 0:e88a4fbb7247 75
damiakin 0:e88a4fbb7247 76 }
damiakin 0:e88a4fbb7247 77
damiakin 0:e88a4fbb7247 78
damiakin 0:e88a4fbb7247 79
damiakin 0:e88a4fbb7247 80
damiakin 0:e88a4fbb7247 81
damiakin 0:e88a4fbb7247 82 void QuestionBank()
damiakin 0:e88a4fbb7247 83 {
damiakin 0:e88a4fbb7247 84 Q12();
damiakin 0:e88a4fbb7247 85 wait(1.500);
damiakin 0:e88a4fbb7247 86 Q9();
damiakin 0:e88a4fbb7247 87 wait(1.500);
damiakin 0:e88a4fbb7247 88 Q10();
damiakin 0:e88a4fbb7247 89 wait(1.500);
damiakin 0:e88a4fbb7247 90 Q13();
damiakin 0:e88a4fbb7247 91 wait(1.500);
damiakin 0:e88a4fbb7247 92 Q14();
damiakin 0:e88a4fbb7247 93 wait(1.500);
damiakin 0:e88a4fbb7247 94 Q8();
damiakin 0:e88a4fbb7247 95 wait(1.500);
damiakin 0:e88a4fbb7247 96 Q11();
damiakin 0:e88a4fbb7247 97 wait(1.500);
damiakin 0:e88a4fbb7247 98 Q3();
damiakin 0:e88a4fbb7247 99 wait(1.500);
damiakin 0:e88a4fbb7247 100 Q7();
damiakin 0:e88a4fbb7247 101 wait(1.500);
damiakin 0:e88a4fbb7247 102 Q1();
damiakin 0:e88a4fbb7247 103 wait(1.500);
damiakin 0:e88a4fbb7247 104 Q15();
damiakin 0:e88a4fbb7247 105 wait(1.500);
damiakin 0:e88a4fbb7247 106 Q2();
damiakin 0:e88a4fbb7247 107 wait(1.500);
damiakin 0:e88a4fbb7247 108 Q5();
damiakin 0:e88a4fbb7247 109 wait(1.500);
damiakin 0:e88a4fbb7247 110 Q6();
damiakin 0:e88a4fbb7247 111 wait(1.500);
damiakin 0:e88a4fbb7247 112 Q4();
damiakin 0:e88a4fbb7247 113 }
damiakin 0:e88a4fbb7247 114
damiakin 0:e88a4fbb7247 115 void Q1()
damiakin 0:e88a4fbb7247 116 {
damiakin 0:e88a4fbb7247 117 lcd.clear();
damiakin 0:e88a4fbb7247 118
damiakin 0:e88a4fbb7247 119 while (1) {
damiakin 0:e88a4fbb7247 120 lcd.setContrast(0.8);
damiakin 0:e88a4fbb7247 121 lcd.printString("7 + 7 - 7 / 7?",0,0);
damiakin 0:e88a4fbb7247 122 lcd.printString("A. 14", 0,1);
damiakin 0:e88a4fbb7247 123 lcd.printString("B. 13", 0,2);
damiakin 0:e88a4fbb7247 124 lcd.printString("C. 1", 0,3);
damiakin 0:e88a4fbb7247 125 lcd.printString("D. 7", 0,4);
damiakin 0:e88a4fbb7247 126 lcd.refresh();
damiakin 0:e88a4fbb7247 127 // ALL WRONG ANSWERS HAVE THE RED LED AND CORRECT HAVE THE GREEN AND A SCORE
damiakin 0:e88a4fbb7247 128 // INCREMENT
damiakin 0:e88a4fbb7247 129 if (button_A.read() == 1) {
damiakin 0:e88a4fbb7247 130 red_led.write(0);
damiakin 0:e88a4fbb7247 131 break;
damiakin 0:e88a4fbb7247 132
damiakin 0:e88a4fbb7247 133 } else if (button_B.read() == 1) {
damiakin 0:e88a4fbb7247 134 green_led.write(0);
damiakin 0:e88a4fbb7247 135 counter++; // CORRECT
damiakin 0:e88a4fbb7247 136 break;
damiakin 0:e88a4fbb7247 137 } else if (button_C.read() == 1) {
damiakin 0:e88a4fbb7247 138 red_led.write(0);
damiakin 0:e88a4fbb7247 139 break;
damiakin 0:e88a4fbb7247 140 } else if(button_D.read() == 1){
damiakin 0:e88a4fbb7247 141 red_led.write(0);
damiakin 0:e88a4fbb7247 142 break;
damiakin 0:e88a4fbb7247 143 } else {
damiakin 0:e88a4fbb7247 144 red_led.write(1);
damiakin 0:e88a4fbb7247 145 green_led.write(1);
damiakin 0:e88a4fbb7247 146 blue_led.write(1);
damiakin 0:e88a4fbb7247 147 }
damiakin 0:e88a4fbb7247 148 }
damiakin 0:e88a4fbb7247 149 }
damiakin 0:e88a4fbb7247 150
damiakin 0:e88a4fbb7247 151
damiakin 0:e88a4fbb7247 152 void Q2()
damiakin 0:e88a4fbb7247 153 {
damiakin 0:e88a4fbb7247 154 lcd.clear();
damiakin 0:e88a4fbb7247 155 while (1) {
damiakin 0:e88a4fbb7247 156 lcd.setContrast(0.5);
damiakin 0:e88a4fbb7247 157 lcd.printString("45 OR 6?",0,0);
damiakin 0:e88a4fbb7247 158 lcd.printString("A. 51", 0,1);
damiakin 0:e88a4fbb7247 159 lcd.printString("B. 47", 0,2);
damiakin 0:e88a4fbb7247 160 lcd.printString("C. 46", 0,3);
damiakin 0:e88a4fbb7247 161 lcd.printString("D. 50", 0,4);
damiakin 0:e88a4fbb7247 162 lcd.refresh();
damiakin 0:e88a4fbb7247 163
damiakin 0:e88a4fbb7247 164 if (button_A.read() == 1) {
damiakin 0:e88a4fbb7247 165
damiakin 0:e88a4fbb7247 166 red_led.write(0);
damiakin 0:e88a4fbb7247 167 break;
damiakin 0:e88a4fbb7247 168 } else if (button_B.read() == 1) {
damiakin 0:e88a4fbb7247 169 green_led.write(0);
damiakin 0:e88a4fbb7247 170 counter++;
damiakin 0:e88a4fbb7247 171 break; // CORRECT
damiakin 0:e88a4fbb7247 172 } else if (button_C.read() == 1) {
damiakin 0:e88a4fbb7247 173 red_led.write(0);
damiakin 0:e88a4fbb7247 174 break;
damiakin 0:e88a4fbb7247 175 } else if(button_D.read() == 1){
damiakin 0:e88a4fbb7247 176 red_led.write(0);
damiakin 0:e88a4fbb7247 177 break;
damiakin 0:e88a4fbb7247 178 } else {
damiakin 0:e88a4fbb7247 179 red_led.write(1);
damiakin 0:e88a4fbb7247 180 green_led.write(1);
damiakin 0:e88a4fbb7247 181 blue_led.write(1);
damiakin 0:e88a4fbb7247 182 }
damiakin 0:e88a4fbb7247 183 }
damiakin 0:e88a4fbb7247 184 }
damiakin 0:e88a4fbb7247 185
damiakin 0:e88a4fbb7247 186
damiakin 0:e88a4fbb7247 187 void Q3()
damiakin 0:e88a4fbb7247 188 {
damiakin 0:e88a4fbb7247 189 lcd.clear();
damiakin 0:e88a4fbb7247 190
damiakin 0:e88a4fbb7247 191 while (1) {
damiakin 0:e88a4fbb7247 192 lcd.setContrast(0.5);
damiakin 0:e88a4fbb7247 193 lcd.printString("8/2(2+2)",0,0);
damiakin 0:e88a4fbb7247 194 lcd.printString("A. 1-1+1*1", 0,1);
damiakin 0:e88a4fbb7247 195 lcd.printString("B. 1", 0,2);
damiakin 0:e88a4fbb7247 196 lcd.printString("C. 156", 0,3);
damiakin 0:e88a4fbb7247 197 lcd.printString("D. 16", 0,4);
damiakin 0:e88a4fbb7247 198 lcd.refresh();
damiakin 0:e88a4fbb7247 199
damiakin 0:e88a4fbb7247 200 if (button_A.read() == 1) {
damiakin 0:e88a4fbb7247 201 red_led.write(0);
damiakin 0:e88a4fbb7247 202 break;
damiakin 0:e88a4fbb7247 203 } else if (button_B.read() == 1) {
damiakin 0:e88a4fbb7247 204 red_led.write(0);
damiakin 0:e88a4fbb7247 205 break;
damiakin 0:e88a4fbb7247 206 } else if (button_C.read() == 1) {
damiakin 0:e88a4fbb7247 207 red_led.write(0);
damiakin 0:e88a4fbb7247 208 break;
damiakin 0:e88a4fbb7247 209 } else if(button_D.read() == 1){
damiakin 0:e88a4fbb7247 210 green_led.write(0);
damiakin 0:e88a4fbb7247 211 counter++; // CORRECT
damiakin 0:e88a4fbb7247 212 break;
damiakin 0:e88a4fbb7247 213 } else {
damiakin 0:e88a4fbb7247 214 red_led.write(1);
damiakin 0:e88a4fbb7247 215 green_led.write(1);
damiakin 0:e88a4fbb7247 216 blue_led.write(1);
damiakin 0:e88a4fbb7247 217 }
damiakin 0:e88a4fbb7247 218 }
damiakin 0:e88a4fbb7247 219 }
damiakin 0:e88a4fbb7247 220
damiakin 0:e88a4fbb7247 221
damiakin 0:e88a4fbb7247 222 void Q4()
damiakin 0:e88a4fbb7247 223 {
damiakin 0:e88a4fbb7247 224 lcd.clear(); // CLEARS THE SCREEN TO REMOVE PREVIOUS QUESTION
damiakin 0:e88a4fbb7247 225
damiakin 0:e88a4fbb7247 226 while (1) {
damiakin 0:e88a4fbb7247 227 lcd.printString("0, 1, 1, 2, 3",0,0);
damiakin 0:e88a4fbb7247 228 lcd.printString("13th Number?", 0,1);
damiakin 0:e88a4fbb7247 229 lcd.printString("A. 144", 0,2);
damiakin 0:e88a4fbb7247 230 lcd.printString("B. 12*11", 0,3);
damiakin 0:e88a4fbb7247 231 lcd.printString("C. 156", 0,4);
damiakin 0:e88a4fbb7247 232 lcd.printString("D. 142", 0,5);
damiakin 0:e88a4fbb7247 233 lcd.refresh();
damiakin 0:e88a4fbb7247 234
damiakin 0:e88a4fbb7247 235 if (button_A.read() == 1) {
damiakin 0:e88a4fbb7247 236 green_led.write(0);
damiakin 0:e88a4fbb7247 237 counter++; // CORRECT
damiakin 0:e88a4fbb7247 238 break;
damiakin 0:e88a4fbb7247 239 } else if (button_B.read() == 1) {
damiakin 0:e88a4fbb7247 240 red_led.write(0);
damiakin 0:e88a4fbb7247 241 break;
damiakin 0:e88a4fbb7247 242 } else if (button_C.read() == 1) {
damiakin 0:e88a4fbb7247 243 red_led.write(0);
damiakin 0:e88a4fbb7247 244 break;
damiakin 0:e88a4fbb7247 245 } else if(button_D.read() == 1){
damiakin 0:e88a4fbb7247 246 red_led.write(0);
damiakin 0:e88a4fbb7247 247 break;
damiakin 0:e88a4fbb7247 248 } else {
damiakin 0:e88a4fbb7247 249 red_led.write(1);
damiakin 0:e88a4fbb7247 250 green_led.write(1);
damiakin 0:e88a4fbb7247 251 blue_led.write(1);
damiakin 0:e88a4fbb7247 252 }
damiakin 0:e88a4fbb7247 253 }
damiakin 0:e88a4fbb7247 254 }
damiakin 0:e88a4fbb7247 255
damiakin 0:e88a4fbb7247 256
damiakin 0:e88a4fbb7247 257 void Q5(){
damiakin 0:e88a4fbb7247 258 while(button_A.read() == 0) {
damiakin 0:e88a4fbb7247 259 leds_off(); // TURNS LEDS OFF
damiakin 0:e88a4fbb7247 260 lcd.clear();
damiakin 0:e88a4fbb7247 261 lcd.setContrast(0.5);
damiakin 0:e88a4fbb7247 262 lcd.printString("1 + 3 = 5",0,0);
damiakin 0:e88a4fbb7247 263 lcd.printString("5 + 7 = 9", 0,2);
damiakin 0:e88a4fbb7247 264 lcd.printString("9 + 11 = 13", 0,4); // HINTS FOR SOLVING QUESTION
damiakin 0:e88a4fbb7247 265 // THE LONGER YOU TAKE MORE TIME ADDED
damiakin 0:e88a4fbb7247 266 lcd.printString("A TO CONTINUE", 0,5);
damiakin 0:e88a4fbb7247 267 lcd.refresh();
damiakin 0:e88a4fbb7247 268 }
damiakin 0:e88a4fbb7247 269 wait(0.500);
damiakin 0:e88a4fbb7247 270
damiakin 0:e88a4fbb7247 271 while (1) {
damiakin 0:e88a4fbb7247 272 lcd.clear();
damiakin 0:e88a4fbb7247 273 lcd.printString("17 + 19 = ?", 0,0);
damiakin 0:e88a4fbb7247 274 lcd.printString("A. 23", 0,1);
damiakin 0:e88a4fbb7247 275 lcd.printString("B. 21", 0,2);
damiakin 0:e88a4fbb7247 276 lcd.printString("C. 25", 0,3);
damiakin 0:e88a4fbb7247 277 lcd.printString("D. 27", 0,4);
damiakin 0:e88a4fbb7247 278 lcd.refresh();
damiakin 0:e88a4fbb7247 279
damiakin 0:e88a4fbb7247 280 if (button_A.read() == 1) {
damiakin 0:e88a4fbb7247 281 red_led.write(0);
damiakin 0:e88a4fbb7247 282 break;
damiakin 0:e88a4fbb7247 283 } else if (button_B.read() == 1) {
damiakin 0:e88a4fbb7247 284 green_led.write(0);
damiakin 0:e88a4fbb7247 285 counter++;
damiakin 0:e88a4fbb7247 286 break; // CORRECT
damiakin 0:e88a4fbb7247 287 } else if (button_C.read() == 1) {
damiakin 0:e88a4fbb7247 288 red_led.write(0);
damiakin 0:e88a4fbb7247 289 break;
damiakin 0:e88a4fbb7247 290 } else if(button_D.read() == 1){
damiakin 0:e88a4fbb7247 291 red_led.write(0);
damiakin 0:e88a4fbb7247 292 break;
damiakin 0:e88a4fbb7247 293 } else {
damiakin 0:e88a4fbb7247 294 red_led.write(1);
damiakin 0:e88a4fbb7247 295 green_led.write(1);
damiakin 0:e88a4fbb7247 296 blue_led.write(1);
damiakin 0:e88a4fbb7247 297 }
damiakin 0:e88a4fbb7247 298 }
damiakin 0:e88a4fbb7247 299 }
damiakin 0:e88a4fbb7247 300
damiakin 0:e88a4fbb7247 301
damiakin 0:e88a4fbb7247 302 void Q6(){
damiakin 0:e88a4fbb7247 303 while(button_B.read() == 0) {
damiakin 0:e88a4fbb7247 304 leds_off();
damiakin 0:e88a4fbb7247 305 lcd.clear();
damiakin 0:e88a4fbb7247 306 lcd.setContrast(0.5);
damiakin 0:e88a4fbb7247 307 lcd.printString("12 * 12 = 9",0,0);
damiakin 0:e88a4fbb7247 308 lcd.printString("25 * 25 = 13", 0,2);
damiakin 0:e88a4fbb7247 309 lcd.printString("B TO CONTINUE", 0,5);
damiakin 0:e88a4fbb7247 310 lcd.refresh();
damiakin 0:e88a4fbb7247 311 }
damiakin 0:e88a4fbb7247 312 wait(0.500);
damiakin 0:e88a4fbb7247 313
damiakin 0:e88a4fbb7247 314
damiakin 0:e88a4fbb7247 315 while (1) {
damiakin 0:e88a4fbb7247 316 lcd.clear();
damiakin 0:e88a4fbb7247 317 lcd.printString("31 * 31 = ?", 0,0);
damiakin 0:e88a4fbb7247 318 lcd.printString("A. 14", 0,1);
damiakin 0:e88a4fbb7247 319 lcd.printString("B. 17", 0,2);
damiakin 0:e88a4fbb7247 320 lcd.printString("C. 16", 0,3);
damiakin 0:e88a4fbb7247 321 lcd.printString("D. 15", 0,4);
damiakin 0:e88a4fbb7247 322 lcd.refresh();
damiakin 0:e88a4fbb7247 323
damiakin 0:e88a4fbb7247 324 if (button_A.read() == 1) {
damiakin 0:e88a4fbb7247 325 red_led.write(0);
damiakin 0:e88a4fbb7247 326 break;
damiakin 0:e88a4fbb7247 327 } else if (button_B.read() == 1) {
damiakin 0:e88a4fbb7247 328 red_led.write(0);
damiakin 0:e88a4fbb7247 329 break;
damiakin 0:e88a4fbb7247 330 } else if (button_C.read() == 1) {
damiakin 0:e88a4fbb7247 331 green_led.write(0);
damiakin 0:e88a4fbb7247 332 counter++;
damiakin 0:e88a4fbb7247 333 break; // CORRECT
damiakin 0:e88a4fbb7247 334 } else if(button_D.read() == 1){
damiakin 0:e88a4fbb7247 335 red_led.write(0);
damiakin 0:e88a4fbb7247 336 break;
damiakin 0:e88a4fbb7247 337 } else {
damiakin 0:e88a4fbb7247 338 red_led.write(1);
damiakin 0:e88a4fbb7247 339 green_led.write(1);
damiakin 0:e88a4fbb7247 340 blue_led.write(1);
damiakin 0:e88a4fbb7247 341 }
damiakin 0:e88a4fbb7247 342 }
damiakin 0:e88a4fbb7247 343 }
damiakin 0:e88a4fbb7247 344
damiakin 0:e88a4fbb7247 345 void Q7()
damiakin 0:e88a4fbb7247 346 {
damiakin 0:e88a4fbb7247 347 lcd.clear();
damiakin 0:e88a4fbb7247 348
damiakin 0:e88a4fbb7247 349 while (1) {
damiakin 0:e88a4fbb7247 350 lcd.printString("1 + 1 = ?", 0,0);
damiakin 0:e88a4fbb7247 351 lcd.printString("A. 2", 0,1);
damiakin 0:e88a4fbb7247 352 lcd.printString("B. 2", 0,2);
damiakin 0:e88a4fbb7247 353 lcd.printString("C. 2", 0,3);
damiakin 0:e88a4fbb7247 354 lcd.printString("D. 1345", 0,4);
damiakin 0:e88a4fbb7247 355 lcd.refresh();
damiakin 0:e88a4fbb7247 356
damiakin 0:e88a4fbb7247 357 if (button_A.read() == 1) {
damiakin 0:e88a4fbb7247 358 green_led.write(0);
damiakin 0:e88a4fbb7247 359 counter++;
damiakin 0:e88a4fbb7247 360 break; // CORRECT
damiakin 0:e88a4fbb7247 361 } else if (button_B.read() == 1) {
damiakin 0:e88a4fbb7247 362 green_led.write(0);
damiakin 0:e88a4fbb7247 363 counter++; // CORRECT
damiakin 0:e88a4fbb7247 364 break;
damiakin 0:e88a4fbb7247 365 } else if (button_C.read() == 1) {
damiakin 0:e88a4fbb7247 366 green_led.write(0);
damiakin 0:e88a4fbb7247 367 counter++;
damiakin 0:e88a4fbb7247 368 break; // CORRECT
damiakin 0:e88a4fbb7247 369 } else if(button_D.read() == 1){
damiakin 0:e88a4fbb7247 370 red_led.write(0);
damiakin 0:e88a4fbb7247 371 break;
damiakin 0:e88a4fbb7247 372 } else {
damiakin 0:e88a4fbb7247 373 red_led.write(1);
damiakin 0:e88a4fbb7247 374 green_led.write(1);
damiakin 0:e88a4fbb7247 375 blue_led.write(1);
damiakin 0:e88a4fbb7247 376 }
damiakin 0:e88a4fbb7247 377 }
damiakin 0:e88a4fbb7247 378 }
damiakin 0:e88a4fbb7247 379
damiakin 0:e88a4fbb7247 380
damiakin 0:e88a4fbb7247 381 void Q8(){
damiakin 0:e88a4fbb7247 382 lcd.clear();
damiakin 0:e88a4fbb7247 383
damiakin 0:e88a4fbb7247 384 while (1) {
damiakin 0:e88a4fbb7247 385 lcd.printString("2187 * 4 = ?", 0,0);
damiakin 0:e88a4fbb7247 386 lcd.printString("A. 8478", 0,1);
damiakin 0:e88a4fbb7247 387 lcd.printString("B. 9478", 0,2);
damiakin 0:e88a4fbb7247 388 lcd.printString("C. NONE", 0,3);
damiakin 0:e88a4fbb7247 389 lcd.printString("D. 9748", 0,4);
damiakin 0:e88a4fbb7247 390 lcd.refresh();
damiakin 0:e88a4fbb7247 391
damiakin 0:e88a4fbb7247 392 if (button_A.read() == 1) {
damiakin 0:e88a4fbb7247 393 red_led.write(0);
damiakin 0:e88a4fbb7247 394 break;
damiakin 0:e88a4fbb7247 395 } else if (button_B.read() == 1) {
damiakin 0:e88a4fbb7247 396 red_led.write(0);
damiakin 0:e88a4fbb7247 397 break;
damiakin 0:e88a4fbb7247 398 } else if (button_C.read() == 1) {
damiakin 0:e88a4fbb7247 399 green_led.write(0);
damiakin 0:e88a4fbb7247 400 counter++;
damiakin 0:e88a4fbb7247 401 break; // CORRECT
damiakin 0:e88a4fbb7247 402 } else if(button_D.read() == 1){
damiakin 0:e88a4fbb7247 403 red_led.write(0);
damiakin 0:e88a4fbb7247 404 break;
damiakin 0:e88a4fbb7247 405 } else {
damiakin 0:e88a4fbb7247 406 red_led.write(1);
damiakin 0:e88a4fbb7247 407 green_led.write(1);
damiakin 0:e88a4fbb7247 408 blue_led.write(1);
damiakin 0:e88a4fbb7247 409 }
damiakin 0:e88a4fbb7247 410 }
damiakin 0:e88a4fbb7247 411 }
damiakin 0:e88a4fbb7247 412
damiakin 0:e88a4fbb7247 413
damiakin 0:e88a4fbb7247 414 void Q9(){
damiakin 0:e88a4fbb7247 415 while (button_C.read() == 0) {
damiakin 0:e88a4fbb7247 416 lcd.clear();
damiakin 0:e88a4fbb7247 417 leds_off();
damiakin 0:e88a4fbb7247 418 lcd.setContrast(0.5);
damiakin 0:e88a4fbb7247 419 lcd.printString("9 + B = 19",0,0);
damiakin 0:e88a4fbb7247 420 lcd.printString("+ + +", 0,1);
damiakin 0:e88a4fbb7247 421 lcd.printString("A + 8 = 14", 0,2);
damiakin 0:e88a4fbb7247 422 lcd.printString("= = =", 0,3);
damiakin 0:e88a4fbb7247 423 lcd.printString("C + D = E", 0,4);
damiakin 0:e88a4fbb7247 424 lcd.printString("C TO CONTINUE", 0,5);
damiakin 0:e88a4fbb7247 425 lcd.refresh();
damiakin 0:e88a4fbb7247 426 }
damiakin 0:e88a4fbb7247 427
damiakin 0:e88a4fbb7247 428 wait(0.500);
damiakin 0:e88a4fbb7247 429
damiakin 0:e88a4fbb7247 430 while (1) {
damiakin 0:e88a4fbb7247 431 lcd.clear();
damiakin 0:e88a4fbb7247 432 lcd.printString(" A / B = ?", 0,0);
damiakin 0:e88a4fbb7247 433 lcd.printString("A. 6.8",0,1);
damiakin 0:e88a4fbb7247 434 lcd.printString("B. 0.61", 0,2);
damiakin 0:e88a4fbb7247 435 lcd.printString("C. 90", 0,3);
damiakin 0:e88a4fbb7247 436 lcd.printString("D. 0.6", 0,4);
damiakin 0:e88a4fbb7247 437 lcd.refresh();
damiakin 0:e88a4fbb7247 438
damiakin 0:e88a4fbb7247 439 if (button_A.read() == 1) {
damiakin 0:e88a4fbb7247 440 red_led.write(0);
damiakin 0:e88a4fbb7247 441 break;
damiakin 0:e88a4fbb7247 442 } else if (button_B.read() == 1) {
damiakin 0:e88a4fbb7247 443 red_led.write(0);
damiakin 0:e88a4fbb7247 444 break;
damiakin 0:e88a4fbb7247 445 } else if (button_C.read() == 1) {
damiakin 0:e88a4fbb7247 446 red_led.write(0);
damiakin 0:e88a4fbb7247 447 break;
damiakin 0:e88a4fbb7247 448 } else if(button_D.read() == 1){
damiakin 0:e88a4fbb7247 449 green_led.write(0);
damiakin 0:e88a4fbb7247 450 counter++; // CORRECT
damiakin 0:e88a4fbb7247 451 break;
damiakin 0:e88a4fbb7247 452 } else {
damiakin 0:e88a4fbb7247 453 red_led.write(1);
damiakin 0:e88a4fbb7247 454 green_led.write(1);
damiakin 0:e88a4fbb7247 455 blue_led.write(1);
damiakin 0:e88a4fbb7247 456 }
damiakin 0:e88a4fbb7247 457
damiakin 0:e88a4fbb7247 458 }
damiakin 0:e88a4fbb7247 459 }
damiakin 0:e88a4fbb7247 460
damiakin 0:e88a4fbb7247 461
damiakin 0:e88a4fbb7247 462 void Q10(){
damiakin 0:e88a4fbb7247 463 lcd.clear();
damiakin 0:e88a4fbb7247 464
damiakin 0:e88a4fbb7247 465 while (1) {
damiakin 0:e88a4fbb7247 466 lcd.printString("Make 1 from", 0,0);
damiakin 0:e88a4fbb7247 467 lcd.printString("C,D and E", 0,1);
damiakin 0:e88a4fbb7247 468 lcd.printString("A. (E-D)/C",0,2);
damiakin 0:e88a4fbb7247 469 lcd.printString("B. (C+D)/E", 0,3);
damiakin 0:e88a4fbb7247 470 lcd.printString("C. D-C-E", 0,4);
damiakin 0:e88a4fbb7247 471 lcd.printString("D. (E-C)/D", 0,5);
damiakin 0:e88a4fbb7247 472 lcd.refresh();
damiakin 0:e88a4fbb7247 473
damiakin 0:e88a4fbb7247 474 if (button_A.read() == 1) {
damiakin 0:e88a4fbb7247 475 green_led.write(0);
damiakin 0:e88a4fbb7247 476 counter++;
damiakin 0:e88a4fbb7247 477 break; // CORRECT
damiakin 0:e88a4fbb7247 478 } else if (button_B.read() == 1) {
damiakin 0:e88a4fbb7247 479 green_led.write(0);
damiakin 0:e88a4fbb7247 480 counter++;
damiakin 0:e88a4fbb7247 481 break; // CORRECT
damiakin 0:e88a4fbb7247 482 } else if (button_C.read() == 1) {
damiakin 0:e88a4fbb7247 483 red_led.write(0);
damiakin 0:e88a4fbb7247 484 break;
damiakin 0:e88a4fbb7247 485 } else if(button_D.read() == 1){
damiakin 0:e88a4fbb7247 486 green_led.write(0);
damiakin 0:e88a4fbb7247 487 counter++; // CORRECT
damiakin 0:e88a4fbb7247 488 break;
damiakin 0:e88a4fbb7247 489 } else {
damiakin 0:e88a4fbb7247 490 red_led.write(1);
damiakin 0:e88a4fbb7247 491 green_led.write(1);
damiakin 0:e88a4fbb7247 492 blue_led.write(1);
damiakin 0:e88a4fbb7247 493 }
damiakin 0:e88a4fbb7247 494 }
damiakin 0:e88a4fbb7247 495 }
damiakin 0:e88a4fbb7247 496
damiakin 0:e88a4fbb7247 497
damiakin 0:e88a4fbb7247 498 void Q11(){
damiakin 0:e88a4fbb7247 499 lcd.clear();
damiakin 0:e88a4fbb7247 500
damiakin 0:e88a4fbb7247 501 while (1) {
damiakin 0:e88a4fbb7247 502 lcd.printString("127 NAND 127", 0,0);
damiakin 0:e88a4fbb7247 503 lcd.printString("A. 127",0,1);
damiakin 0:e88a4fbb7247 504 lcd.printString("B. 1", 0,2);
damiakin 0:e88a4fbb7247 505 lcd.printString("C. 0", 0,3);
damiakin 0:e88a4fbb7247 506 lcd.printString("D. 128", 0,4);
damiakin 0:e88a4fbb7247 507 lcd.refresh();
damiakin 0:e88a4fbb7247 508
damiakin 0:e88a4fbb7247 509 if (button_A.read() == 1) {
damiakin 0:e88a4fbb7247 510 red_led.write(0);
damiakin 0:e88a4fbb7247 511 break;
damiakin 0:e88a4fbb7247 512 } else if (button_B.read() == 1) {
damiakin 0:e88a4fbb7247 513 red_led.write(0);
damiakin 0:e88a4fbb7247 514 break;
damiakin 0:e88a4fbb7247 515 } else if (button_C.read() == 1) {
damiakin 0:e88a4fbb7247 516 green_led.write(0);
damiakin 0:e88a4fbb7247 517 counter++;
damiakin 0:e88a4fbb7247 518 break; // CORRECT
damiakin 0:e88a4fbb7247 519 } else if(button_D.read() == 1){
damiakin 0:e88a4fbb7247 520 red_led.write(0);
damiakin 0:e88a4fbb7247 521 break;
damiakin 0:e88a4fbb7247 522 } else {
damiakin 0:e88a4fbb7247 523 red_led.write(1);
damiakin 0:e88a4fbb7247 524 green_led.write(1);
damiakin 0:e88a4fbb7247 525 blue_led.write(1);
damiakin 0:e88a4fbb7247 526 }
damiakin 0:e88a4fbb7247 527 }
damiakin 0:e88a4fbb7247 528 }
damiakin 0:e88a4fbb7247 529
damiakin 0:e88a4fbb7247 530
damiakin 0:e88a4fbb7247 531
damiakin 0:e88a4fbb7247 532 void Q12(){
damiakin 0:e88a4fbb7247 533 while (button_D.read() == 0) {
damiakin 0:e88a4fbb7247 534 lcd.clear();
damiakin 0:e88a4fbb7247 535 leds_off();
damiakin 0:e88a4fbb7247 536 lcd.setContrast(0.8);
damiakin 0:e88a4fbb7247 537 lcd.printString("3 3 3",0,0);
damiakin 0:e88a4fbb7247 538 lcd.printString("4 6 8", 0,1);
damiakin 0:e88a4fbb7247 539 lcd.printString("5 8 11", 0,2);
damiakin 0:e88a4fbb7247 540 lcd.printString("6 7 8", 0,3);
damiakin 0:e88a4fbb7247 541 lcd.printString("? 9 8", 0,4);
damiakin 0:e88a4fbb7247 542 lcd.printString("D TO CONTINUE", 0,5);
damiakin 0:e88a4fbb7247 543 lcd.refresh();
damiakin 0:e88a4fbb7247 544 }
damiakin 0:e88a4fbb7247 545 wait(0.500);
damiakin 0:e88a4fbb7247 546
damiakin 0:e88a4fbb7247 547
damiakin 0:e88a4fbb7247 548 while (1) {
damiakin 0:e88a4fbb7247 549 lcd.clear();
damiakin 0:e88a4fbb7247 550 lcd.printString("What is ", 0,0);
damiakin 0:e88a4fbb7247 551 lcd.printString("the ? ", 0,1);
damiakin 0:e88a4fbb7247 552 lcd.printString("A. 9",0,2);
damiakin 0:e88a4fbb7247 553 lcd.printString("B. 11", 0,3);
damiakin 0:e88a4fbb7247 554 lcd.printString("C. 12", 0,4);
damiakin 0:e88a4fbb7247 555 lcd.printString("D. 10", 0,5);
damiakin 0:e88a4fbb7247 556 lcd.refresh();
damiakin 0:e88a4fbb7247 557
damiakin 0:e88a4fbb7247 558 if (button_A.read() == 1) {
damiakin 0:e88a4fbb7247 559 red_led.write(0);
damiakin 0:e88a4fbb7247 560 break;
damiakin 0:e88a4fbb7247 561 } else if (button_B.read() == 1) {
damiakin 0:e88a4fbb7247 562 red_led.write(0);
damiakin 0:e88a4fbb7247 563 break;
damiakin 0:e88a4fbb7247 564 } else if ( button_C.read() == 1) {
damiakin 0:e88a4fbb7247 565 red_led.write(0);
damiakin 0:e88a4fbb7247 566 break;
damiakin 0:e88a4fbb7247 567 } else if(button_D.read() == 1){
damiakin 0:e88a4fbb7247 568 green_led.write(0);
damiakin 0:e88a4fbb7247 569 counter++; // CORRECT
damiakin 0:e88a4fbb7247 570 break;
damiakin 0:e88a4fbb7247 571 } else {
damiakin 0:e88a4fbb7247 572 red_led.write(1);
damiakin 0:e88a4fbb7247 573 green_led.write(1);
damiakin 0:e88a4fbb7247 574 blue_led.write(1);
damiakin 0:e88a4fbb7247 575 }
damiakin 0:e88a4fbb7247 576 }
damiakin 0:e88a4fbb7247 577 }
damiakin 0:e88a4fbb7247 578
damiakin 0:e88a4fbb7247 579
damiakin 0:e88a4fbb7247 580 void Q13(){
damiakin 0:e88a4fbb7247 581 lcd.clear();
damiakin 0:e88a4fbb7247 582 while (1) {
damiakin 0:e88a4fbb7247 583 lcd.printString("127 || 1? ", 0,0);
damiakin 0:e88a4fbb7247 584 lcd.printString("A. 1",0,1);
damiakin 0:e88a4fbb7247 585 lcd.printString("B. 127", 0,2);
damiakin 0:e88a4fbb7247 586 lcd.printString("C. 0", 0,3);
damiakin 0:e88a4fbb7247 587 lcd.printString("D. 128", 0,4);
damiakin 0:e88a4fbb7247 588 lcd.refresh();
damiakin 0:e88a4fbb7247 589
damiakin 0:e88a4fbb7247 590 if (button_A.read() == 1) {
damiakin 0:e88a4fbb7247 591 green_led.write(0);
damiakin 0:e88a4fbb7247 592 counter++;
damiakin 0:e88a4fbb7247 593 break; // CORRECT
damiakin 0:e88a4fbb7247 594 } else if (button_B.read() == 1) {
damiakin 0:e88a4fbb7247 595 red_led.write(0);
damiakin 0:e88a4fbb7247 596 break;
damiakin 0:e88a4fbb7247 597 } else if (button_C.read() == 1) {
damiakin 0:e88a4fbb7247 598 red_led.write(0);
damiakin 0:e88a4fbb7247 599 break;
damiakin 0:e88a4fbb7247 600 } else if(button_D.read() == 1){
damiakin 0:e88a4fbb7247 601 red_led.write(0);
damiakin 0:e88a4fbb7247 602 break;
damiakin 0:e88a4fbb7247 603 } else {
damiakin 0:e88a4fbb7247 604 red_led.write(1);
damiakin 0:e88a4fbb7247 605 green_led.write(1);
damiakin 0:e88a4fbb7247 606 blue_led.write(1);
damiakin 0:e88a4fbb7247 607 }
damiakin 0:e88a4fbb7247 608 }
damiakin 0:e88a4fbb7247 609 }
damiakin 0:e88a4fbb7247 610
damiakin 0:e88a4fbb7247 611
damiakin 0:e88a4fbb7247 612
damiakin 0:e88a4fbb7247 613 void Q14(){
damiakin 0:e88a4fbb7247 614 while (button_A.read() == 0) {
damiakin 0:e88a4fbb7247 615 lcd.clear();
damiakin 0:e88a4fbb7247 616 leds_off();
damiakin 0:e88a4fbb7247 617 lcd.setContrast(0.5);
damiakin 0:e88a4fbb7247 618 lcd.printString("If,",0,0);
damiakin 0:e88a4fbb7247 619 lcd.printString("A-A-A = 20", 0,1);
damiakin 0:e88a4fbb7247 620 lcd.printString("B-B-B = 15", 0,2);
damiakin 0:e88a4fbb7247 621 lcd.printString("C-C-C = 34", 0,3);
damiakin 0:e88a4fbb7247 622 lcd.printString("A TO CONTINUE", 0,5);
damiakin 0:e88a4fbb7247 623 lcd.refresh();
damiakin 0:e88a4fbb7247 624
damiakin 0:e88a4fbb7247 625 }
damiakin 0:e88a4fbb7247 626
damiakin 0:e88a4fbb7247 627 wait(0.500);
damiakin 0:e88a4fbb7247 628
damiakin 0:e88a4fbb7247 629 while (1) {
damiakin 0:e88a4fbb7247 630 lcd.clear();
damiakin 0:e88a4fbb7247 631 lcd.printString("What is ", 0,0);
damiakin 0:e88a4fbb7247 632 lcd.printString("A + B + C ", 0,1);
damiakin 0:e88a4fbb7247 633 lcd.printString("A. 69",0,2);
damiakin 0:e88a4fbb7247 634 lcd.printString("B. 60", 0,3);
damiakin 0:e88a4fbb7247 635 lcd.printString("C. -69", 0,4);
damiakin 0:e88a4fbb7247 636 lcd.printString("D. -60", 0,5);
damiakin 0:e88a4fbb7247 637 lcd.refresh();
damiakin 0:e88a4fbb7247 638
damiakin 0:e88a4fbb7247 639 if (button_A.read() == 1) {
damiakin 0:e88a4fbb7247 640 red_led.write(0);
damiakin 0:e88a4fbb7247 641 break;
damiakin 0:e88a4fbb7247 642 } else if (button_B.read() == 1) {
damiakin 0:e88a4fbb7247 643 red_led.write(0);
damiakin 0:e88a4fbb7247 644 break;
damiakin 0:e88a4fbb7247 645 } else if (button_C.read() == 1) {
damiakin 0:e88a4fbb7247 646 green_led.write(0);
damiakin 0:e88a4fbb7247 647 counter++;
damiakin 0:e88a4fbb7247 648 break; // CORRECT
damiakin 0:e88a4fbb7247 649 } else if(button_D.read() == 1){
damiakin 0:e88a4fbb7247 650 red_led.write(0);
damiakin 0:e88a4fbb7247 651 break;
damiakin 0:e88a4fbb7247 652 } else {
damiakin 0:e88a4fbb7247 653 red_led.write(1);
damiakin 0:e88a4fbb7247 654 green_led.write(1);
damiakin 0:e88a4fbb7247 655 blue_led.write(1);
damiakin 0:e88a4fbb7247 656 }
damiakin 0:e88a4fbb7247 657 }
damiakin 0:e88a4fbb7247 658 }
damiakin 0:e88a4fbb7247 659
damiakin 0:e88a4fbb7247 660 void Q15(){
damiakin 0:e88a4fbb7247 661 while (button_B.read() == 0) {
damiakin 0:e88a4fbb7247 662 lcd.clear();
damiakin 0:e88a4fbb7247 663 leds_off();
damiakin 0:e88a4fbb7247 664 lcd.setContrast(0.5);
damiakin 0:e88a4fbb7247 665 lcd.printString("5 + 5 = 30",0,0);
damiakin 0:e88a4fbb7247 666 lcd.printString("6 + 6 = 42", 0,1);
damiakin 0:e88a4fbb7247 667 lcd.printString("7 + 7 = 56", 0,2);
damiakin 0:e88a4fbb7247 668 lcd.printString("8 + 8 = 72", 0,3);
damiakin 0:e88a4fbb7247 669 lcd.printString("B TO CONTINUE", 0,5);
damiakin 0:e88a4fbb7247 670 lcd.refresh();
damiakin 0:e88a4fbb7247 671 }
damiakin 0:e88a4fbb7247 672
damiakin 0:e88a4fbb7247 673 wait(0.500);
damiakin 0:e88a4fbb7247 674
damiakin 0:e88a4fbb7247 675
damiakin 0:e88a4fbb7247 676 while (1) {
damiakin 0:e88a4fbb7247 677 lcd.clear();
damiakin 0:e88a4fbb7247 678 lcd.printString("10 + 10 = ?? ", 0,0);
damiakin 0:e88a4fbb7247 679 lcd.printString("A. 100",0,1);
damiakin 0:e88a4fbb7247 680 lcd.printString("B. 110", 0,2);
damiakin 0:e88a4fbb7247 681 lcd.printString("C. 101", 0,3);
damiakin 0:e88a4fbb7247 682 lcd.printString("D. 120", 0,4);
damiakin 0:e88a4fbb7247 683 lcd.refresh();
damiakin 0:e88a4fbb7247 684
damiakin 0:e88a4fbb7247 685 if (button_A.read() == 1) {
damiakin 0:e88a4fbb7247 686 red_led.write(0);
damiakin 0:e88a4fbb7247 687 break;
damiakin 0:e88a4fbb7247 688 } else if (button_B.read() == 1) {
damiakin 0:e88a4fbb7247 689 green_led.write(0);
damiakin 0:e88a4fbb7247 690 counter++;
damiakin 0:e88a4fbb7247 691 break; // CORRECT
damiakin 0:e88a4fbb7247 692 } else if (button_C.read() == 1) {
damiakin 0:e88a4fbb7247 693 red_led.write(0);
damiakin 0:e88a4fbb7247 694 break;
damiakin 0:e88a4fbb7247 695 } else if(button_D.read() == 1){
damiakin 0:e88a4fbb7247 696 red_led.write(0);
damiakin 0:e88a4fbb7247 697 break;
damiakin 0:e88a4fbb7247 698 } else {
damiakin 0:e88a4fbb7247 699 red_led.write(1);
damiakin 0:e88a4fbb7247 700 green_led.write(1);
damiakin 0:e88a4fbb7247 701 blue_led.write(1);
damiakin 0:e88a4fbb7247 702 }
damiakin 0:e88a4fbb7247 703
damiakin 0:e88a4fbb7247 704 }
damiakin 0:e88a4fbb7247 705 }
damiakin 0:e88a4fbb7247 706
damiakin 0:e88a4fbb7247 707 void Loading() {
damiakin 0:e88a4fbb7247 708 while (x < 62) {
damiakin 0:e88a4fbb7247 709 lcd.clear();
damiakin 0:e88a4fbb7247 710 lcd.setContrast(0.8);
damiakin 0:e88a4fbb7247 711 lcd.printString(" MATH ",0,1);
damiakin 0:e88a4fbb7247 712 lcd.printString(" TRIVIA!!! ",0,2);
damiakin 0:e88a4fbb7247 713 lcd.drawRect(12,40,60,8,FILL_TRANSPARENT);
damiakin 0:e88a4fbb7247 714 lcd.drawRect(12,40,x,8,FILL_BLACK);
damiakin 0:e88a4fbb7247 715 x+=2; // Rectangle fills to simulate loading
damiakin 0:e88a4fbb7247 716 lcd.refresh();
damiakin 0:e88a4fbb7247 717 wait(0.5);
damiakin 0:e88a4fbb7247 718 }
damiakin 0:e88a4fbb7247 719 }
damiakin 0:e88a4fbb7247 720
damiakin 0:e88a4fbb7247 721 void Intro() {
damiakin 0:e88a4fbb7247 722 while(button_A.read() == 0) {
damiakin 0:e88a4fbb7247 723 lcd.clear();
damiakin 0:e88a4fbb7247 724 lcd.printString(" Welcome ", 0,0);
damiakin 0:e88a4fbb7247 725 lcd.printString(" to a ", 0,1);
damiakin 0:e88a4fbb7247 726 lcd.printString("challenging ", 0,2);
damiakin 0:e88a4fbb7247 727 lcd.printString(" game ", 0,3);
damiakin 0:e88a4fbb7247 728 lcd.printString("A to continue", 0,5);
damiakin 0:e88a4fbb7247 729 lcd.refresh();
damiakin 0:e88a4fbb7247 730 }
damiakin 0:e88a4fbb7247 731 wait(1.0);
damiakin 0:e88a4fbb7247 732
damiakin 0:e88a4fbb7247 733 while(button_B.read() == 0) {
damiakin 0:e88a4fbb7247 734 lcd.clear();
damiakin 0:e88a4fbb7247 735 lcd.printString(" that tests ", 0,0);
damiakin 0:e88a4fbb7247 736 lcd.printString(" your mental ", 0,1);
damiakin 0:e88a4fbb7247 737 lcd.printString("math fortitude ", 0,2);
damiakin 0:e88a4fbb7247 738 lcd.printString(" ...... ", 0,3);
damiakin 0:e88a4fbb7247 739 lcd.printString("B to continue", 0,5);
damiakin 0:e88a4fbb7247 740 lcd.refresh();
damiakin 0:e88a4fbb7247 741 }
damiakin 0:e88a4fbb7247 742 wait(1.0);
damiakin 0:e88a4fbb7247 743
damiakin 0:e88a4fbb7247 744 while (button_C.read() == 0) {
damiakin 0:e88a4fbb7247 745 lcd.clear();
damiakin 0:e88a4fbb7247 746 lcd.printString(" Here we ",0,1);
damiakin 0:e88a4fbb7247 747 lcd.printString(" gooo!!!!! ",0,2);
damiakin 0:e88a4fbb7247 748 lcd.printString(" C to continue", 0,5);
damiakin 0:e88a4fbb7247 749 lcd.refresh();
damiakin 0:e88a4fbb7247 750
damiakin 0:e88a4fbb7247 751 }
damiakin 0:e88a4fbb7247 752 }
damiakin 0:e88a4fbb7247 753
damiakin 0:e88a4fbb7247 754
damiakin 0:e88a4fbb7247 755 void Testing(){
damiakin 0:e88a4fbb7247 756 lcd.clear();
damiakin 0:e88a4fbb7247 757 lcd.setContrast(0.5);
damiakin 0:e88a4fbb7247 758 lcd.printString("Before ",0,0);
damiakin 0:e88a4fbb7247 759 lcd.printString("we", 0,1);
damiakin 0:e88a4fbb7247 760 lcd.printString("start", 0,2);
damiakin 0:e88a4fbb7247 761 lcd.printString("...........", 0,3);
damiakin 0:e88a4fbb7247 762 lcd.refresh();
damiakin 0:e88a4fbb7247 763 wait(2.500);
damiakin 0:e88a4fbb7247 764 lcd.clear();
damiakin 0:e88a4fbb7247 765
damiakin 0:e88a4fbb7247 766 while (1) {
damiakin 0:e88a4fbb7247 767 lcd.printString("An incorrect",0,0);
damiakin 0:e88a4fbb7247 768 lcd.printString("answer looks", 0,1);
damiakin 0:e88a4fbb7247 769 lcd.printString("like this..", 0,2);
damiakin 0:e88a4fbb7247 770 red_led = 0;
damiakin 0:e88a4fbb7247 771 lcd.refresh();
damiakin 0:e88a4fbb7247 772 wait(1.5);
damiakin 0:e88a4fbb7247 773 break;
damiakin 0:e88a4fbb7247 774 }
damiakin 0:e88a4fbb7247 775 while(1) {
damiakin 0:e88a4fbb7247 776 lcd.clear();
damiakin 0:e88a4fbb7247 777 lcd.printString("A correct",0,0);
damiakin 0:e88a4fbb7247 778 lcd.printString("answer......", 0,1);
damiakin 0:e88a4fbb7247 779 green_led = 0;
damiakin 0:e88a4fbb7247 780 red_led = 1;
damiakin 0:e88a4fbb7247 781 lcd.refresh();
damiakin 0:e88a4fbb7247 782 wait(1.5);
damiakin 0:e88a4fbb7247 783 break;
damiakin 0:e88a4fbb7247 784 }
damiakin 0:e88a4fbb7247 785 }
damiakin 0:e88a4fbb7247 786
damiakin 0:e88a4fbb7247 787 void Timing()
damiakin 0:e88a4fbb7247 788 {
damiakin 0:e88a4fbb7247 789 while(1) {
damiakin 0:e88a4fbb7247 790 lcd.clear();
damiakin 0:e88a4fbb7247 791 lcd.printString("Your time ",0,0);
damiakin 0:e88a4fbb7247 792 lcd.printString("starts now!", 0,1);
damiakin 0:e88a4fbb7247 793 wait(0.5);
damiakin 0:e88a4fbb7247 794 red_led = 0;
damiakin 0:e88a4fbb7247 795 green_led = 1;
damiakin 0:e88a4fbb7247 796 wait(0.7);
damiakin 0:e88a4fbb7247 797 red_led = 0;
damiakin 0:e88a4fbb7247 798 green_led = 0;
damiakin 0:e88a4fbb7247 799 wait(1.5);
damiakin 0:e88a4fbb7247 800 green_led = 0;
damiakin 0:e88a4fbb7247 801 red_led = 1;
damiakin 0:e88a4fbb7247 802 lcd.refresh();
damiakin 0:e88a4fbb7247 803 wait(1.5);
damiakin 0:e88a4fbb7247 804 break;
damiakin 0:e88a4fbb7247 805 }
damiakin 0:e88a4fbb7247 806 }
damiakin 0:e88a4fbb7247 807
damiakin 0:e88a4fbb7247 808
damiakin 0:e88a4fbb7247 809 void FinalScore() {
damiakin 0:e88a4fbb7247 810 leds_off();
damiakin 0:e88a4fbb7247 811 lcd.clear();
damiakin 0:e88a4fbb7247 812
damiakin 0:e88a4fbb7247 813 lcd.printString("Out of 15 your",0,0);
damiakin 0:e88a4fbb7247 814 lcd.printString("score is",0,1);
damiakin 0:e88a4fbb7247 815
damiakin 0:e88a4fbb7247 816 char buffer[14]={0};
damiakin 0:e88a4fbb7247 817 sprintf(buffer,"%d",counter); // SCORE OUT OF 15
damiakin 0:e88a4fbb7247 818 lcd.printString(buffer,0,2);
damiakin 0:e88a4fbb7247 819 lcd.refresh();
damiakin 0:e88a4fbb7247 820
damiakin 0:e88a4fbb7247 821 wait(2.0);
damiakin 0:e88a4fbb7247 822
damiakin 0:e88a4fbb7247 823
damiakin 0:e88a4fbb7247 824 while (1) {
damiakin 0:e88a4fbb7247 825
damiakin 0:e88a4fbb7247 826 lcd.clear();
damiakin 0:e88a4fbb7247 827 lcd.printString("And the time",0,0);
damiakin 0:e88a4fbb7247 828 lcd.printString("..............",0,1);
damiakin 0:e88a4fbb7247 829 char buffer[14]={0};
damiakin 0:e88a4fbb7247 830 sprintf(buffer,"%3f",t.read() - 22.5); // TOTAL TIME TAKEN
damiakin 0:e88a4fbb7247 831 lcd.printString(buffer,0,2);
damiakin 0:e88a4fbb7247 832 lcd.printString("seconds",0,3);
damiakin 0:e88a4fbb7247 833 lcd.refresh();
damiakin 0:e88a4fbb7247 834 break;
damiakin 0:e88a4fbb7247 835
damiakin 0:e88a4fbb7247 836 }
damiakin 0:e88a4fbb7247 837 wait(3.0);
damiakin 0:e88a4fbb7247 838 while (y < 62) {
damiakin 0:e88a4fbb7247 839 lcd.clear();
damiakin 0:e88a4fbb7247 840 lcd.printString(" Calculating ",0,1);
damiakin 0:e88a4fbb7247 841 lcd.printString(" final scores ",0,2);
damiakin 0:e88a4fbb7247 842 lcd.drawRect(12,40,60,8,FILL_TRANSPARENT);
damiakin 0:e88a4fbb7247 843 lcd.drawRect(12,40,y,8,FILL_BLACK);
damiakin 0:e88a4fbb7247 844 y+=2;
damiakin 0:e88a4fbb7247 845 lcd.refresh();
damiakin 0:e88a4fbb7247 846 wait(0.25);
damiakin 0:e88a4fbb7247 847 }
damiakin 0:e88a4fbb7247 848 wait(2.5);
damiakin 0:e88a4fbb7247 849 lcd.clear();
damiakin 0:e88a4fbb7247 850 lcd.printString("Your final ",0,0);
damiakin 0:e88a4fbb7247 851 lcd.printString(" score is",0,1);
damiakin 0:e88a4fbb7247 852 char score[14]={0};
damiakin 0:e88a4fbb7247 853 sprintf(score,"%3f",counter + t.read() - 22.5); // TIME + SCORE
damiakin 0:e88a4fbb7247 854 lcd.printString(score,0,2);
damiakin 0:e88a4fbb7247 855 lcd.printString("POINTS",0,3);
damiakin 0:e88a4fbb7247 856 lcd.refresh();
damiakin 0:e88a4fbb7247 857
damiakin 0:e88a4fbb7247 858
damiakin 0:e88a4fbb7247 859 }
damiakin 0:e88a4fbb7247 860
damiakin 0:e88a4fbb7247 861 void ScoreDisplay() {
damiakin 0:e88a4fbb7247 862 int seven_seg_array [] = {
damiakin 0:e88a4fbb7247 863 0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x67};
damiakin 0:e88a4fbb7247 864 int value = counter - 10;
damiakin 0:e88a4fbb7247 865 int new_array [] = {0x06,seven_seg_array [value]};
damiakin 0:e88a4fbb7247 866 // write 0 to 7-seg to turn it off
damiakin 0:e88a4fbb7247 867
damiakin 0:e88a4fbb7247 868 while(1) {
damiakin 0:e88a4fbb7247 869 if (counter < 10) {
damiakin 0:e88a4fbb7247 870 shift.write(seven_seg_array [counter]);
damiakin 0:e88a4fbb7247 871 }
damiakin 0:e88a4fbb7247 872 else {
damiakin 0:e88a4fbb7247 873 for(int i = 0; i < 2; i++) {
damiakin 0:e88a4fbb7247 874 shift.write(new_array[i]);
damiakin 0:e88a4fbb7247 875 wait(0.75);
damiakin 0:e88a4fbb7247 876 }
damiakin 0:e88a4fbb7247 877 }
damiakin 0:e88a4fbb7247 878 }
damiakin 0:e88a4fbb7247 879 }
damiakin 0:e88a4fbb7247 880
damiakin 0:e88a4fbb7247 881
damiakin 0:e88a4fbb7247 882 void buttons_off()
damiakin 0:e88a4fbb7247 883 {
damiakin 0:e88a4fbb7247 884 // PCB has external pull-down resistors so turn the internal ones off
damiakin 0:e88a4fbb7247 885 // (default for DigitalIn)
damiakin 0:e88a4fbb7247 886 button_A.mode(PullNone);
damiakin 0:e88a4fbb7247 887 button_B.mode(PullNone);
damiakin 0:e88a4fbb7247 888 button_C.mode(PullNone);
damiakin 0:e88a4fbb7247 889 button_D.mode(PullNone);
damiakin 0:e88a4fbb7247 890 }
damiakin 0:e88a4fbb7247 891
damiakin 0:e88a4fbb7247 892
damiakin 0:e88a4fbb7247 893 void leds_off()
damiakin 0:e88a4fbb7247 894 {
damiakin 0:e88a4fbb7247 895 // LEDs are common anode (active-low) so writing a 1 will turn them off
damiakin 0:e88a4fbb7247 896 red_led.write(1);
damiakin 0:e88a4fbb7247 897 green_led.write(1);
damiakin 0:e88a4fbb7247 898 blue_led.write(1);
damiakin 0:e88a4fbb7247 899
damiakin 0:e88a4fbb7247 900 // SYNONYMS
damiakin 0:e88a4fbb7247 901 //red_led = 1;
damiakin 0:e88a4fbb7247 902 //green_led = 1;
damiakin 0:e88a4fbb7247 903 //blue_led = 1;
damiakin 0:e88a4fbb7247 904 }