Akinbolu Damilola
/
ELEC_2645_Project
MATH TRIVIA(Simple Version)
main.cpp@0:e88a4fbb7247, 2021-05-03 (annotated)
- 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?
User | Revision | Line number | New 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 | } |