
Completed Snake Program
Dependencies: N5110 PinDetect PowerControl mbed
Fork of DocTest by
main.cpp@2:deb61a34ac31, 2015-04-08 (annotated)
- Committer:
- MBirney
- Date:
- Wed Apr 08 20:00:37 2015 +0000
- Revision:
- 2:deb61a34ac31
- Parent:
- 1:6fc14cd8ccf1
- Child:
- 3:478b090b7e1b
Splash screen and working on switch statement for difficulty menu
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
MBirney | 2:deb61a34ac31 | 1 | #include "mbed.h" |
MBirney | 2:deb61a34ac31 | 2 | #include "N5110.h" |
MBirney | 2:deb61a34ac31 | 3 | |
MBirney | 2:deb61a34ac31 | 4 | // VCC,SCE,RST,D/C,MOSI,SCLK,LED |
MBirney | 2:deb61a34ac31 | 5 | N5110 lcd(p7,p8,p9,p10,p11,p13,p21); |
MBirney | 2:deb61a34ac31 | 6 | //d |
eencae | 0:b85460bc73b9 | 7 | |
MBirney | 2:deb61a34ac31 | 8 | // Can also power (VCC) directly from VOUT (3.3 V) - |
MBirney | 2:deb61a34ac31 | 9 | // Can give better performance due to current limitation from GPIO pin |
MBirney | 2:deb61a34ac31 | 10 | enum Difficulty { |
MBirney | 2:deb61a34ac31 | 11 | EASY, |
MBirney | 2:deb61a34ac31 | 12 | MEDIUM, |
MBirney | 2:deb61a34ac31 | 13 | HARD, |
MBirney | 2:deb61a34ac31 | 14 | }; |
MBirney | 2:deb61a34ac31 | 15 | int gameSpeed;//change depending on difficulty selected |
eencae | 0:b85460bc73b9 | 16 | |
MBirney | 2:deb61a34ac31 | 17 | Difficulty currentDifficulty =EASY; |
eencae | 0:b85460bc73b9 | 18 | |
MBirney | 2:deb61a34ac31 | 19 | void displaySplash() |
MBirney | 2:deb61a34ac31 | 20 | { |
MBirney | 2:deb61a34ac31 | 21 | // these are default settings so not strictly needed |
MBirney | 2:deb61a34ac31 | 22 | lcd.inverseMode(); // normal colour mode |
MBirney | 2:deb61a34ac31 | 23 | lcd.setBrightness(0.5); // put LED backlight on 50% |
MBirney | 2:deb61a34ac31 | 24 | |
MBirney | 2:deb61a34ac31 | 25 | //Draw S |
MBirney | 2:deb61a34ac31 | 26 | lcd.drawRect(28,10,2,5,1); |
MBirney | 2:deb61a34ac31 | 27 | lcd.drawRect(15,10,15,2,1); |
MBirney | 2:deb61a34ac31 | 28 | lcd.drawRect(15,10,2,10,1); |
MBirney | 2:deb61a34ac31 | 29 | lcd.drawRect(15,20,15,2,1); |
MBirney | 2:deb61a34ac31 | 30 | lcd.drawRect(28,20,2,10,1); |
MBirney | 2:deb61a34ac31 | 31 | lcd.drawRect(15,28,15,2,1); |
MBirney | 2:deb61a34ac31 | 32 | lcd.drawRect(15,25,2,3,1); |
MBirney | 2:deb61a34ac31 | 33 | |
MBirney | 2:deb61a34ac31 | 34 | lcd.printString("NAKE ",34,3); |
MBirney | 2:deb61a34ac31 | 35 | lcd.printString("By M.Birney",10,5); |
MBirney | 2:deb61a34ac31 | 36 | lcd.drawRect(10,5,65,30,0); |
MBirney | 2:deb61a34ac31 | 37 | |
MBirney | 2:deb61a34ac31 | 38 | // need to refresh display after setting pixels |
MBirney | 2:deb61a34ac31 | 39 | |
MBirney | 2:deb61a34ac31 | 40 | lcd.refresh(); |
eencae | 0:b85460bc73b9 | 41 | } |
eencae | 0:b85460bc73b9 | 42 | |
eencae | 0:b85460bc73b9 | 43 | |
MBirney | 2:deb61a34ac31 | 44 | |
MBirney | 2:deb61a34ac31 | 45 | void easySelected() // display when easy is selected |
MBirney | 2:deb61a34ac31 | 46 | { |
MBirney | 2:deb61a34ac31 | 47 | lcd.clear(); |
MBirney | 2:deb61a34ac31 | 48 | lcd.printString("Please Select",2,0); |
MBirney | 2:deb61a34ac31 | 49 | lcd.printString("Difficulty:",2,1); |
MBirney | 2:deb61a34ac31 | 50 | lcd.printString("Easy",20,3); |
MBirney | 2:deb61a34ac31 | 51 | lcd.printString("Medium",20,4); |
MBirney | 2:deb61a34ac31 | 52 | lcd.printString("Hard",20,5); |
MBirney | 2:deb61a34ac31 | 53 | lcd.refresh(); |
MBirney | 2:deb61a34ac31 | 54 | lcd.drawCircle(10,27,2,1); |
MBirney | 2:deb61a34ac31 | 55 | lcd.drawCircle(10,35,2,0); |
MBirney | 2:deb61a34ac31 | 56 | lcd.drawCircle(10,43,2,0); |
MBirney | 2:deb61a34ac31 | 57 | |
MBirney | 2:deb61a34ac31 | 58 | gameSpeed= 1.0; |
MBirney | 2:deb61a34ac31 | 59 | } |
MBirney | 2:deb61a34ac31 | 60 | void mediumSelected() // display when medium is selected |
MBirney | 2:deb61a34ac31 | 61 | { |
MBirney | 2:deb61a34ac31 | 62 | lcd.clear(); |
MBirney | 2:deb61a34ac31 | 63 | lcd.printString("Please Select",2,0); |
MBirney | 2:deb61a34ac31 | 64 | lcd.printString("Difficulty:",2,1); |
MBirney | 2:deb61a34ac31 | 65 | lcd.printString("Easy",20,3); |
MBirney | 2:deb61a34ac31 | 66 | lcd.printString("Medium",20,4); |
MBirney | 2:deb61a34ac31 | 67 | lcd.printString("Hard",20,5); |
MBirney | 2:deb61a34ac31 | 68 | lcd.refresh(); |
MBirney | 2:deb61a34ac31 | 69 | lcd.drawCircle(10,27,2,0); |
MBirney | 2:deb61a34ac31 | 70 | lcd.drawCircle(10,35,2,1); |
MBirney | 2:deb61a34ac31 | 71 | lcd.drawCircle(10,43,2,0); |
MBirney | 2:deb61a34ac31 | 72 | gameSpeed=1.0/4; |
MBirney | 2:deb61a34ac31 | 73 | } |
MBirney | 2:deb61a34ac31 | 74 | |
MBirney | 2:deb61a34ac31 | 75 | void hardSelected() // display when hard is selected |
MBirney | 2:deb61a34ac31 | 76 | { |
MBirney | 2:deb61a34ac31 | 77 | lcd.clear(); |
MBirney | 2:deb61a34ac31 | 78 | lcd.printString("Please Select",2,0); |
MBirney | 2:deb61a34ac31 | 79 | lcd.printString("Difficulty:",2,1); |
MBirney | 2:deb61a34ac31 | 80 | lcd.printString("Easy",20,3); |
MBirney | 2:deb61a34ac31 | 81 | lcd.printString("Medium",20,4); |
MBirney | 2:deb61a34ac31 | 82 | lcd.printString("Hard",20,5); |
MBirney | 2:deb61a34ac31 | 83 | lcd.refresh(); |
MBirney | 2:deb61a34ac31 | 84 | lcd.drawCircle(10,27,2,0); |
MBirney | 2:deb61a34ac31 | 85 | lcd.drawCircle(10,35,2,0); |
MBirney | 2:deb61a34ac31 | 86 | lcd.drawCircle(10,43,2,1); |
MBirney | 2:deb61a34ac31 | 87 | gameSpeed=1.0/8; |
MBirney | 2:deb61a34ac31 | 88 | } |
MBirney | 2:deb61a34ac31 | 89 | |
MBirney | 2:deb61a34ac31 | 90 | |
MBirney | 2:deb61a34ac31 | 91 | |
MBirney | 2:deb61a34ac31 | 92 | int main() |
MBirney | 2:deb61a34ac31 | 93 | { |
MBirney | 2:deb61a34ac31 | 94 | // first need to initialise display |
MBirney | 2:deb61a34ac31 | 95 | lcd.init(); |
MBirney | 2:deb61a34ac31 | 96 | displaySplash(); |
MBirney | 2:deb61a34ac31 | 97 | wait(1); |
MBirney | 2:deb61a34ac31 | 98 | |
MBirney | 2:deb61a34ac31 | 99 | easySelected(); |
MBirney | 2:deb61a34ac31 | 100 | wait(2); |
MBirney | 2:deb61a34ac31 | 101 | mediumSelected(); |
MBirney | 2:deb61a34ac31 | 102 | wait(2); |
MBirney | 2:deb61a34ac31 | 103 | hardSelected(); |
MBirney | 2:deb61a34ac31 | 104 | |
MBirney | 2:deb61a34ac31 | 105 | while(1) { |
MBirney | 2:deb61a34ac31 | 106 | |
MBirney | 2:deb61a34ac31 | 107 | switch(currentDifficulty) { |
MBirney | 2:deb61a34ac31 | 108 | case EASY: |
MBirney | 2:deb61a34ac31 | 109 | |
MBirney | 2:deb61a34ac31 | 110 | switch (joystick.direction) |
MBirney | 2:deb61a34ac31 | 111 | |
MBirney | 2:deb61a34ac31 | 112 | case UP: |
MBirney | 2:deb61a34ac31 | 113 | hardSelected; |
MBirney | 2:deb61a34ac31 | 114 | break; |
MBirney | 2:deb61a34ac31 | 115 | |
MBirney | 2:deb61a34ac31 | 116 | |
MBirney | 2:deb61a34ac31 | 117 | case DOWN: |
MBirney | 2:deb61a34ac31 | 118 | mediumSelected; |
MBirney | 2:deb61a34ac31 | 119 | break; |
MBirney | 2:deb61a34ac31 | 120 | |
MBirney | 2:deb61a34ac31 | 121 | break; |
MBirney | 2:deb61a34ac31 | 122 | |
MBirney | 2:deb61a34ac31 | 123 | |
MBirney | 2:deb61a34ac31 | 124 | case MEDIUM: |
MBirney | 2:deb61a34ac31 | 125 | |
MBirney | 2:deb61a34ac31 | 126 | switch (joystick.direction) |
MBirney | 2:deb61a34ac31 | 127 | |
MBirney | 2:deb61a34ac31 | 128 | case UP: |
MBirney | 2:deb61a34ac31 | 129 | easySelected; |
MBirney | 2:deb61a34ac31 | 130 | break; |
MBirney | 2:deb61a34ac31 | 131 | |
MBirney | 2:deb61a34ac31 | 132 | |
MBirney | 2:deb61a34ac31 | 133 | case DOWN: |
MBirney | 2:deb61a34ac31 | 134 | hardSelected; |
MBirney | 2:deb61a34ac31 | 135 | break; |
MBirney | 2:deb61a34ac31 | 136 | |
MBirney | 2:deb61a34ac31 | 137 | |
MBirney | 2:deb61a34ac31 | 138 | |
MBirney | 2:deb61a34ac31 | 139 | break; |
MBirney | 2:deb61a34ac31 | 140 | case HARD: |
MBirney | 2:deb61a34ac31 | 141 | switch (joystick.direction) |
MBirney | 2:deb61a34ac31 | 142 | |
MBirney | 2:deb61a34ac31 | 143 | case UP: |
MBirney | 2:deb61a34ac31 | 144 | mediumSelected; |
MBirney | 2:deb61a34ac31 | 145 | break; |
MBirney | 2:deb61a34ac31 | 146 | |
MBirney | 2:deb61a34ac31 | 147 | |
MBirney | 2:deb61a34ac31 | 148 | case DOWN: |
MBirney | 2:deb61a34ac31 | 149 | easySelected; |
MBirney | 2:deb61a34ac31 | 150 | break; |
MBirney | 2:deb61a34ac31 | 151 | break; |
MBirney | 2:deb61a34ac31 | 152 | } |
MBirney | 2:deb61a34ac31 | 153 | |
MBirney | 2:deb61a34ac31 | 154 | |
MBirney | 2:deb61a34ac31 | 155 | } |
eencae | 0:b85460bc73b9 | 156 | } |