QuickClick, a reaction timing game which allows single and multiplayer mode.

Dependencies:   Controller Display N5110 Operator mbed

Committer:
domkay97
Date:
Wed Apr 12 23:47:49 2017 +0000
Revision:
2:c3d86dd51b69
Parent:
1:fd22ccce4fe9
Child:
3:e67f9ba37049
New inputs for user added in gameplay

Who changed what in which revision?

UserRevisionLine numberNew contents of line
domkay97 0:e19df24a20fc 1 //Dom
domkay97 0:e19df24a20fc 2
domkay97 0:e19df24a20fc 3 #include "mbed.h"
domkay97 0:e19df24a20fc 4 #include "N5110.h"
domkay97 0:e19df24a20fc 5 #include "Display.h"
domkay97 1:fd22ccce4fe9 6 #include "Controller.h"
domkay97 0:e19df24a20fc 7 #include "Operator.h"
domkay97 0:e19df24a20fc 8
domkay97 0:e19df24a20fc 9 N5110 lcd(PTC9,PTC0,PTC7,PTD2,PTD1,PTC11);
domkay97 0:e19df24a20fc 10 Display display;
domkay97 1:fd22ccce4fe9 11 Controller pad;
domkay97 0:e19df24a20fc 12 Operator Opp;
domkay97 0:e19df24a20fc 13 int button_val;
domkay97 0:e19df24a20fc 14 int instruction_val;
domkay97 0:e19df24a20fc 15 int score;
domkay97 0:e19df24a20fc 16 void starter();
domkay97 0:e19df24a20fc 17
domkay97 0:e19df24a20fc 18 int main() {
domkay97 0:e19df24a20fc 19 button_val=0;
domkay97 0:e19df24a20fc 20 score = 0;
domkay97 0:e19df24a20fc 21 lcd.init();
domkay97 0:e19df24a20fc 22 Opp.init();
domkay97 0:e19df24a20fc 23 display.init();
domkay97 0:e19df24a20fc 24 pad.init();
domkay97 0:e19df24a20fc 25 starter();
domkay97 0:e19df24a20fc 26 while(1) {
domkay97 1:fd22ccce4fe9 27 instruction_val = Opp.random_instruction(display, lcd);
domkay97 1:fd22ccce4fe9 28 display.drawCircle(lcd);
domkay97 2:c3d86dd51b69 29 button_val = Opp.read_input(pad);
domkay97 2:c3d86dd51b69 30 pad.leds_off();
domkay97 0:e19df24a20fc 31 if (button_val == instruction_val) {
domkay97 0:e19df24a20fc 32 score++;
domkay97 0:e19df24a20fc 33 pad.led(1,1);
domkay97 0:e19df24a20fc 34 pad.led(2,1);
domkay97 0:e19df24a20fc 35 pad.led(3,1);
domkay97 0:e19df24a20fc 36 pad.tone(100.0,0.2);
domkay97 0:e19df24a20fc 37 char buffer[14];
domkay97 0:e19df24a20fc 38 sprintf(buffer,"Button = %2d",button_val);
domkay97 0:e19df24a20fc 39 lcd.printString(buffer,0,1);
domkay97 0:e19df24a20fc 40 lcd.refresh();
domkay97 0:e19df24a20fc 41 } else {
domkay97 0:e19df24a20fc 42 pad.tone(700.0,1);
domkay97 2:c3d86dd51b69 43 while(pad.check_event(Controller::BACK_PRESSED) == false) {
domkay97 0:e19df24a20fc 44 char buffer[14];
domkay97 0:e19df24a20fc 45 sprintf(buffer,"Score = %2d",score);
domkay97 0:e19df24a20fc 46 lcd.printString(buffer,0,1);
domkay97 0:e19df24a20fc 47 lcd.refresh();
domkay97 0:e19df24a20fc 48 pad.leds_off();
domkay97 0:e19df24a20fc 49 pad.led(4,1);
domkay97 0:e19df24a20fc 50 pad.led(5,1);
domkay97 2:c3d86dd51b69 51 pad.led(6,1);
domkay97 2:c3d86dd51b69 52 }
domkay97 2:c3d86dd51b69 53 score = 0;
domkay97 2:c3d86dd51b69 54 display.init();
domkay97 2:c3d86dd51b69 55 pad.init();
domkay97 2:c3d86dd51b69 56 starter(); }
domkay97 2:c3d86dd51b69 57 wait(0.2);
domkay97 0:e19df24a20fc 58 }
domkay97 0:e19df24a20fc 59 }
domkay97 0:e19df24a20fc 60 void starter() {
domkay97 0:e19df24a20fc 61
domkay97 0:e19df24a20fc 62
domkay97 2:c3d86dd51b69 63 lcd.printString("Quick Click",10,1);
domkay97 2:c3d86dd51b69 64 lcd.printString("Start >",24,4);
domkay97 0:e19df24a20fc 65 lcd.refresh();
domkay97 0:e19df24a20fc 66
domkay97 0:e19df24a20fc 67 // wait flashing LEDs until start button is pressed
domkay97 2:c3d86dd51b69 68 while (pad.check_event(Controller::START_PRESSED) == false) {
domkay97 0:e19df24a20fc 69 pad.leds_on();
domkay97 0:e19df24a20fc 70 wait(0.1);
domkay97 0:e19df24a20fc 71 pad.leds_off();
domkay97 0:e19df24a20fc 72 wait(0.1);
domkay97 0:e19df24a20fc 73 }
domkay97 0:e19df24a20fc 74
domkay97 0:e19df24a20fc 75 }