
Completed Snake Program
Dependencies: N5110 PinDetect PowerControl mbed
Fork of DocTest by
Diff: main.cpp
- Revision:
- 2:deb61a34ac31
- Parent:
- 1:6fc14cd8ccf1
- Child:
- 3:478b090b7e1b
diff -r 6fc14cd8ccf1 -r deb61a34ac31 main.cpp --- a/main.cpp Wed Mar 11 16:03:08 2015 +0000 +++ b/main.cpp Wed Apr 08 20:00:37 2015 +0000 @@ -1,25 +1,156 @@ -/** -@file main.cpp +#include "mbed.h" +#include "N5110.h" + +// VCC,SCE,RST,D/C,MOSI,SCLK,LED +N5110 lcd(p7,p8,p9,p10,p11,p13,p21); +//d -@brief Program implementation +// Can also power (VCC) directly from VOUT (3.3 V) - +// Can give better performance due to current limitation from GPIO pin +enum Difficulty { + EASY, + MEDIUM, + HARD, +}; +int gameSpeed;//change depending on difficulty selected -*/ -#include "main.h" +Difficulty currentDifficulty =EASY; -int main() { - - /// flash LED in infinite loop - while(1) { - myled = 1; - wait(0.2); - myled = 0; - wait(0.2); - } +void displaySplash() +{ + // these are default settings so not strictly needed + lcd.inverseMode(); // normal colour mode + lcd.setBrightness(0.5); // put LED backlight on 50% + + //Draw S + lcd.drawRect(28,10,2,5,1); + lcd.drawRect(15,10,15,2,1); + lcd.drawRect(15,10,2,10,1); + lcd.drawRect(15,20,15,2,1); + lcd.drawRect(28,20,2,10,1); + lcd.drawRect(15,28,15,2,1); + lcd.drawRect(15,25,2,3,1); + + lcd.printString("NAKE ",34,3); + lcd.printString("By M.Birney",10,5); + lcd.drawRect(10,5,65,30,0); + + // need to refresh display after setting pixels + + lcd.refresh(); } -int sum(int a, int b) { - - /// calculate the sum of the two arguments and return - return a + b; + +void easySelected() // display when easy is selected +{ + lcd.clear(); + lcd.printString("Please Select",2,0); + lcd.printString("Difficulty:",2,1); + lcd.printString("Easy",20,3); + lcd.printString("Medium",20,4); + lcd.printString("Hard",20,5); + lcd.refresh(); + lcd.drawCircle(10,27,2,1); + lcd.drawCircle(10,35,2,0); + lcd.drawCircle(10,43,2,0); + + gameSpeed= 1.0; +} +void mediumSelected() // display when medium is selected +{ + lcd.clear(); + lcd.printString("Please Select",2,0); + lcd.printString("Difficulty:",2,1); + lcd.printString("Easy",20,3); + lcd.printString("Medium",20,4); + lcd.printString("Hard",20,5); + lcd.refresh(); + lcd.drawCircle(10,27,2,0); + lcd.drawCircle(10,35,2,1); + lcd.drawCircle(10,43,2,0); + gameSpeed=1.0/4; +} + +void hardSelected() // display when hard is selected +{ + lcd.clear(); + lcd.printString("Please Select",2,0); + lcd.printString("Difficulty:",2,1); + lcd.printString("Easy",20,3); + lcd.printString("Medium",20,4); + lcd.printString("Hard",20,5); + lcd.refresh(); + lcd.drawCircle(10,27,2,0); + lcd.drawCircle(10,35,2,0); + lcd.drawCircle(10,43,2,1); + gameSpeed=1.0/8; +} + + + +int main() +{ + // first need to initialise display + lcd.init(); + displaySplash(); + wait(1); + + easySelected(); + wait(2); + mediumSelected(); + wait(2); + hardSelected(); + + while(1) { + + switch(currentDifficulty) { + case EASY: + + switch (joystick.direction) + + case UP: + hardSelected; + break; + + + case DOWN: + mediumSelected; + break; + + break; + + + case MEDIUM: + + switch (joystick.direction) + + case UP: + easySelected; + break; + + + case DOWN: + hardSelected; + break; + + + + break; + case HARD: + switch (joystick.direction) + + case UP: + mediumSelected; + break; + + + case DOWN: + easySelected; + break; + break; + } + + + } } \ No newline at end of file