This is the code to the math game mini project.
Dependencies: 4DGL-uLCD-SE mbed
Diff: main.cpp
- Revision:
- 0:aedab05ce6cc
- Child:
- 1:03c9bef920a6
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Fri Mar 13 13:52:29 2015 +0000 @@ -0,0 +1,154 @@ +#include <math.h> +#include "mbed.h" +#include "uLCD_4DGL.h" +#include <time.h> + +uLCD_4DGL uLCD(p9, p10,p11); +int operand1; +int operand2; +int op; +int answer; +int ans = 0; +int score = 0; +int seconds = 30; +float seed; +Timer t; +DigitalIn pb1(p13); +DigitalIn pb2(p14); +DigitalIn pb3(p15); +DigitalIn pb4(p16); +DigitalIn pb5(p17); +DigitalIn pb6(p18); + + +void generateProblem(){ + operand1 = rand() % 40 + 1; + operand2 = rand() % 40 + 1; + op = rand() % 3; + + if (op == 0){ + uLCD.locate(0,0); + uLCD.printf("%d + %d\n",operand1, operand2); + answer = operand1 + operand2; + } + else if (op == 1){ + uLCD.locate(0,0); + uLCD.printf("%d - %d\n",operand1, operand2); + answer = operand1 - operand2; + } + else if (op == 2){ + uLCD.locate(0,0); + uLCD.printf("%d * %d\n",operand1, operand2); + answer = operand1 * operand2; + } + + + } +int main() +{ + pb1.mode(PullUp); + pb2.mode(PullUp); + pb3.mode(PullUp); + pb4.mode(PullUp); + pb5.mode(PullUp); + pb6.mode(PullUp); + + + bool randomGen = true; + t.start(); + while(randomGen){ + uLCD.locate(1,0); + uLCD.printf("Push any button to start the game"); + if(pb1==0 || pb2==0 || pb3==0 || pb4==0 || pb5==0 || pb6 == 0){ + seed = t.read_us(); + randomGen= false; + t.reset(); + uLCD.cls(); + } + } + + + + srand((int)seed); + + + + while(true){ + generateProblem(); + uLCD.locate(1,14); + uLCD.printf("Score: %d",score); + t.start(); + + while(t.read() <= seconds){ + if(seconds - (int)t.read() < 10){ + uLCD.locate(13,1); + uLCD.printf("%d",(seconds -(int)t.read())); + } else{ + uLCD.locate(12,1); + uLCD.printf("%d",(seconds -(int)t.read())); + } + if(pb1 == 0) + { + ans = ans + 1; + uLCD.locate(1,2); + uLCD.printf("%d",ans); + wait(0.2); + } + else if(pb2 == 0) + { + ans = ans + 10; + uLCD.locate(1,2); + uLCD.printf("%d",ans); + wait(0.2); + } + else if(pb3 == 0) + { + ans = ans + 100; + uLCD.locate(1,2); + uLCD.printf("%d",ans); + wait(0.2); + } + else if(pb4 == 0) + { + ans = ans - 1; + uLCD.locate(1,2); + uLCD.printf("%d",ans); + wait(0.2); + } + else if(pb5 == 0) + { + ans = ans - 10; + uLCD.locate(1,2); + uLCD.printf("%d",ans); + wait(0.2); + } + else if(pb6 == 0) + { + ans = ans - 100; + uLCD.locate(1,2); + uLCD.printf("%d",ans); + wait(0.2); + } + } + + if( ans == answer){ + score += 1; + seconds -=3; + }else + { + uLCD.cls(); + uLCD.printf("You lose!\n Your score is %d",score); + wait(5); + score = 0; + seconds = 30; + } + t.reset(); + + ans = 0; + + uLCD.cls(); + + + } + +}