QuickClick, a reaction timing game which allows single and multiplayer mode.
Dependencies: Controller Display N5110 Operator mbed
main.cpp@3:e67f9ba37049, 2017-04-14 (annotated)
- Committer:
- domkay97
- Date:
- Fri Apr 14 22:30:16 2017 +0000
- Revision:
- 3:e67f9ba37049
- Parent:
- 2:c3d86dd51b69
- Child:
- 5:b6fcee26c5ff
Moved functionality from main to operator
Who changed what in which revision?
User | Revision | Line number | New 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 | void starter(); |
domkay97 | 0:e19df24a20fc | 16 | |
domkay97 | 0:e19df24a20fc | 17 | int main() { |
domkay97 | 0:e19df24a20fc | 18 | button_val=0; |
domkay97 | 0:e19df24a20fc | 19 | lcd.init(); |
domkay97 | 0:e19df24a20fc | 20 | Opp.init(); |
domkay97 | 0:e19df24a20fc | 21 | display.init(); |
domkay97 | 0:e19df24a20fc | 22 | pad.init(); |
domkay97 | 0:e19df24a20fc | 23 | starter(); |
domkay97 | 3:e67f9ba37049 | 24 | while(1) { |
domkay97 | 3:e67f9ba37049 | 25 | instruction_val = Opp.random_instruction(display, lcd); |
domkay97 | 3:e67f9ba37049 | 26 | display.drawCircle(lcd); |
domkay97 | 3:e67f9ba37049 | 27 | button_val = Opp.read_input(pad); |
domkay97 | 3:e67f9ba37049 | 28 | pad.leds_off(); |
domkay97 | 3:e67f9ba37049 | 29 | if (button_val == instruction_val) { |
domkay97 | 3:e67f9ba37049 | 30 | Opp.Correct(pad); |
domkay97 | 3:e67f9ba37049 | 31 | } else { |
domkay97 | 3:e67f9ba37049 | 32 | Opp.Game_Over(pad, lcd); |
domkay97 | 3:e67f9ba37049 | 33 | display.init(); |
domkay97 | 3:e67f9ba37049 | 34 | pad.init(); |
domkay97 | 3:e67f9ba37049 | 35 | starter(); |
domkay97 | 3:e67f9ba37049 | 36 | } |
domkay97 | 0:e19df24a20fc | 37 | } |
domkay97 | 3:e67f9ba37049 | 38 | |
domkay97 | 0:e19df24a20fc | 39 | } |
domkay97 | 0:e19df24a20fc | 40 | void starter() { |
domkay97 | 0:e19df24a20fc | 41 | |
domkay97 | 0:e19df24a20fc | 42 | |
domkay97 | 2:c3d86dd51b69 | 43 | lcd.printString("Quick Click",10,1); |
domkay97 | 2:c3d86dd51b69 | 44 | lcd.printString("Start >",24,4); |
domkay97 | 0:e19df24a20fc | 45 | lcd.refresh(); |
domkay97 | 0:e19df24a20fc | 46 | |
domkay97 | 0:e19df24a20fc | 47 | // wait flashing LEDs until start button is pressed |
domkay97 | 2:c3d86dd51b69 | 48 | while (pad.check_event(Controller::START_PRESSED) == false) { |
domkay97 | 0:e19df24a20fc | 49 | pad.leds_on(); |
domkay97 | 0:e19df24a20fc | 50 | wait(0.1); |
domkay97 | 0:e19df24a20fc | 51 | pad.leds_off(); |
domkay97 | 0:e19df24a20fc | 52 | wait(0.1); |
domkay97 | 0:e19df24a20fc | 53 | } |
domkay97 | 0:e19df24a20fc | 54 | |
domkay97 | 0:e19df24a20fc | 55 | } |