Completed Snake Program

Dependencies:   N5110 PinDetect PowerControl mbed

Fork of DocTest by Craig Evans

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?

UserRevisionLine numberNew 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 }