Dependencies:   N5110 mbed

Committer:
jordaahh
Date:
Mon Apr 27 16:25:56 2015 +0000
Revision:
12:5ab932192a97
Parent:
11:e5481bda1d6a
Child:
13:677d398423f7
now also writes score to file

Who changed what in which revision?

UserRevisionLine numberNew contents of line
jordaahh 0:a28ad0db4228 1 /* Joystick
jordaahh 10:ffac6dc620ff 2
jordaahh 0:a28ad0db4228 3 Example code of how to read a joystick
jordaahh 10:ffac6dc620ff 4
jordaahh 0:a28ad0db4228 5 https://www.sparkfun.com/products/9032
jordaahh 10:ffac6dc620ff 6
jordaahh 0:a28ad0db4228 7 Craig A. Evans
jordaahh 0:a28ad0db4228 8 7 March 2015
jordaahh 0:a28ad0db4228 9 */
jordaahh 10:ffac6dc620ff 10
jordaahh 0:a28ad0db4228 11 #include "mbed.h"
jordaahh 1:3b741adc82ea 12 #include "N5110.h"
jordaahh 1:3b741adc82ea 13
jordaahh 0:a28ad0db4228 14 // change this to alter tolerance of joystick direction
jordaahh 5:200fa178cb3a 15 #define DIRECTION_TOLERANCE 0.1
jordaahh 10:ffac6dc620ff 16
jordaahh 0:a28ad0db4228 17 // connections for joystick
jordaahh 11:e5481bda1d6a 18 DigitalIn button(p17);
jordaahh 11:e5481bda1d6a 19 AnalogIn xPot(p15);
jordaahh 11:e5481bda1d6a 20 AnalogIn yPot(p16);
jordaahh 1:3b741adc82ea 21
jordaahh 1:3b741adc82ea 22 // LCD connections
jordaahh 1:3b741adc82ea 23 //vcc, sce, rst, dc, mosi, clk, led
jordaahh 10:ffac6dc620ff 24 N5110 lcd(p7,p8,p9,p10,p11,p13,p26);
jordaahh 1:3b741adc82ea 25
jordaahh 2:98a51d3c2e44 26 // LCD dimentions
jordaahh 2:98a51d3c2e44 27 int nx= 84; //screen is 84 pixels across
jordaahh 2:98a51d3c2e44 28 int ny= 48; // by 48 pixels downwards
jordaahh 10:ffac6dc620ff 29
jordaahh 10:ffac6dc620ff 30 int x = 0; // wall starts from the coordinates (0,0)
jordaahh 10:ffac6dc620ff 31 int y = 0;
jordaahh 10:ffac6dc620ff 32 int z = 30;
jordaahh 10:ffac6dc620ff 33 int i=24; // initial coordinates for player object
jordaahh 5:200fa178cb3a 34 int j=42;
jordaahh 2:98a51d3c2e44 35
jordaahh 1:3b741adc82ea 36 // Output to screen LED's (backlights)
jordaahh 10:ffac6dc620ff 37 PwmOut PWM(p26);
jordaahh 1:3b741adc82ea 38
jordaahh 0:a28ad0db4228 39 // timer to regularly read the joystick
jordaahh 0:a28ad0db4228 40 Ticker pollJoystick;
jordaahh 0:a28ad0db4228 41 // Serial for debug
jordaahh 0:a28ad0db4228 42 Serial serial(USBTX,USBRX);
jordaahh 10:ffac6dc620ff 43
jordaahh 0:a28ad0db4228 44 // create enumerated type (0,1,2,3 etc. for direction)
jordaahh 0:a28ad0db4228 45 // could be extended for diagonals etc.
jordaahh 0:a28ad0db4228 46 enum DirectionName {
jordaahh 0:a28ad0db4228 47 UP,
jordaahh 0:a28ad0db4228 48 DOWN,
jordaahh 0:a28ad0db4228 49 LEFT,
jordaahh 6:c257b2060803 50 upLeft,
jordaahh 6:c257b2060803 51 downLeft,
jordaahh 0:a28ad0db4228 52 RIGHT,
jordaahh 5:200fa178cb3a 53 upRight,
jordaahh 5:200fa178cb3a 54 downRight,
jordaahh 0:a28ad0db4228 55 CENTRE,
jordaahh 0:a28ad0db4228 56 UNKNOWN
jordaahh 0:a28ad0db4228 57 };
jordaahh 10:ffac6dc620ff 58
jordaahh 0:a28ad0db4228 59 // struct for Joystick
jordaahh 0:a28ad0db4228 60 typedef struct JoyStick Joystick;
jordaahh 0:a28ad0db4228 61 struct JoyStick {
jordaahh 0:a28ad0db4228 62 float x; // current x value
jordaahh 0:a28ad0db4228 63 float x0; // 'centred' x value
jordaahh 0:a28ad0db4228 64 float y; // current y value
jordaahh 0:a28ad0db4228 65 float y0; // 'centred' y value
jordaahh 0:a28ad0db4228 66 int button; // button state (assume pull-down used, so 1 = pressed, 0 = unpressed)
jordaahh 0:a28ad0db4228 67 DirectionName direction; // current direction
jordaahh 0:a28ad0db4228 68 };
jordaahh 0:a28ad0db4228 69 // create struct variable
jordaahh 0:a28ad0db4228 70 Joystick joystick;
jordaahh 10:ffac6dc620ff 71
jordaahh 0:a28ad0db4228 72 int printFlag = 0;
jordaahh 8:db2994eef1ab 73
jordaahh 8:db2994eef1ab 74 // timer function for moving walls
jordaahh 8:db2994eef1ab 75 Ticker wallMovement;
jordaahh 11:e5481bda1d6a 76 Ticker wallMovement2;
jordaahh 11:e5481bda1d6a 77 Ticker wallMovement3;
jordaahh 8:db2994eef1ab 78
jordaahh 8:db2994eef1ab 79
jordaahh 8:db2994eef1ab 80 int FLAG = 0; // initial value for flag that is used for wall movement
jordaahh 11:e5481bda1d6a 81 int FLAG2 = 0; // initial value for flag that is used for wall movement
jordaahh 11:e5481bda1d6a 82 int FLAG3 = 0; // initial value for flag that is used for wall movement
jordaahh 10:ffac6dc620ff 83
jordaahh 10:ffac6dc620ff 84 // timer function for menu scroll
jordaahh 10:ffac6dc620ff 85 Ticker menuMovement;
jordaahh 9:7c687ed420de 86
jordaahh 9:7c687ed420de 87 int menuFlag = 0; //initial value for flag that is used for menu scrolling
jordaahh 9:7c687ed420de 88
jordaahh 10:ffac6dc620ff 89 int c = 0; // initial value for position of option in menu
jordaahh 9:7c687ed420de 90
jordaahh 12:5ab932192a97 91
jordaahh 12:5ab932192a97 92 LocalFileSystem local("local"); // create local filesystem
jordaahh 12:5ab932192a97 93
jordaahh 11:e5481bda1d6a 94 // functions for TimeAndDate
jordaahh 11:e5481bda1d6a 95 void serialISR(); // ISR that is called when serial data is received
jordaahh 11:e5481bda1d6a 96 void setTime(); // function to set the UNIX time
jordaahh 11:e5481bda1d6a 97 int setTimeFlag = 0; // flag for ISR
jordaahh 11:e5481bda1d6a 98 char rxString[16]; // buffer to store received string
jordaahh 11:e5481bda1d6a 99
jordaahh 0:a28ad0db4228 100 // function prototypes
jordaahh 0:a28ad0db4228 101 void calibrateJoystick();
jordaahh 0:a28ad0db4228 102 void updateJoystick();
jordaahh 3:11cbc2945fd7 103 void clearCells();
jordaahh 10:ffac6dc620ff 104 void fallingWall();
jordaahh 8:db2994eef1ab 105 void flagForWall();
jordaahh 11:e5481bda1d6a 106 void flagForWall2();
jordaahh 11:e5481bda1d6a 107 void flagForWall3();
jordaahh 10:ffac6dc620ff 108 void menu();
jordaahh 10:ffac6dc620ff 109 void playGame();
jordaahh 11:e5481bda1d6a 110 void TimeAndDate();
jordaahh 12:5ab932192a97 111 void writeDataToFile(int data);
jordaahh 10:ffac6dc620ff 112
jordaahh 10:ffac6dc620ff 113 int main()
jordaahh 0:a28ad0db4228 114 {
jordaahh 1:3b741adc82ea 115 lcd.init();
jordaahh 0:a28ad0db4228 116 calibrateJoystick(); // get centred values of joystick
jordaahh 11:e5481bda1d6a 117 pollJoystick.attach(&updateJoystick,1.0/15.0); // read joystick 10 times per second
jordaahh 11:e5481bda1d6a 118 wallMovement.attach(&flagForWall,0.2); // call function flagForWall to make flag=1, every 0.1 seconds
jordaahh 11:e5481bda1d6a 119 wallMovement2.attach(&flagForWall2,0.2); // call function flagForWall2 to make flag=1, every 0.1 seconds
jordaahh 11:e5481bda1d6a 120 wallMovement3.attach(&flagForWall3,0.2); // call function flagForWall3 to make flag=1, every 0.1 seconds
jordaahh 10:ffac6dc620ff 121 menu();
jordaahh 7:b27a91c673dc 122
jordaahh 0:a28ad0db4228 123 }
jordaahh 5:200fa178cb3a 124
jordaahh 0:a28ad0db4228 125 // read default positions of the joystick to calibrate later readings
jordaahh 0:a28ad0db4228 126 void calibrateJoystick()
jordaahh 0:a28ad0db4228 127 {
jordaahh 0:a28ad0db4228 128 button.mode(PullDown);
jordaahh 0:a28ad0db4228 129 // must not move during calibration
jordaahh 0:a28ad0db4228 130 joystick.x0 = xPot; // initial positions in the range 0.0 to 1.0 (0.5 if centred exactly)
jordaahh 0:a28ad0db4228 131 joystick.y0 = yPot;
jordaahh 0:a28ad0db4228 132 }
jordaahh 0:a28ad0db4228 133 void updateJoystick()
jordaahh 0:a28ad0db4228 134 {
jordaahh 0:a28ad0db4228 135 // read current joystick values relative to calibrated values (in range -0.5 to 0.5, 0.0 is centred)
jordaahh 0:a28ad0db4228 136 joystick.x = xPot - joystick.x0;
jordaahh 0:a28ad0db4228 137 joystick.y = yPot - joystick.y0;
jordaahh 0:a28ad0db4228 138 // read button state
jordaahh 0:a28ad0db4228 139 joystick.button = button;
jordaahh 10:ffac6dc620ff 140
jordaahh 0:a28ad0db4228 141 // calculate direction depending on x,y values
jordaahh 0:a28ad0db4228 142 // tolerance allows a little lee-way in case joystick not exactly in the stated direction
jordaahh 0:a28ad0db4228 143 if ( fabs(joystick.y) < DIRECTION_TOLERANCE && fabs(joystick.x) < DIRECTION_TOLERANCE) {
jordaahh 0:a28ad0db4228 144 joystick.direction = CENTRE;
jordaahh 0:a28ad0db4228 145 } else if ( joystick.y > DIRECTION_TOLERANCE && fabs(joystick.x) < DIRECTION_TOLERANCE) {
jordaahh 0:a28ad0db4228 146 joystick.direction = UP;
jordaahh 0:a28ad0db4228 147 } else if ( joystick.y < DIRECTION_TOLERANCE && fabs(joystick.x) < DIRECTION_TOLERANCE) {
jordaahh 0:a28ad0db4228 148 joystick.direction = DOWN;
jordaahh 0:a28ad0db4228 149 } else if ( joystick.x > DIRECTION_TOLERANCE && fabs(joystick.y) < DIRECTION_TOLERANCE) {
jordaahh 0:a28ad0db4228 150 joystick.direction = RIGHT;
jordaahh 0:a28ad0db4228 151 } else if ( joystick.x < DIRECTION_TOLERANCE && fabs(joystick.y) < DIRECTION_TOLERANCE) {
jordaahh 0:a28ad0db4228 152 joystick.direction = LEFT;
jordaahh 10:ffac6dc620ff 153 } else if ( joystick.y > DIRECTION_TOLERANCE && joystick.x > DIRECTION_TOLERANCE) {
jordaahh 6:c257b2060803 154 joystick.direction = upRight;
jordaahh 10:ffac6dc620ff 155 } else if ( joystick.y < DIRECTION_TOLERANCE && joystick.x > DIRECTION_TOLERANCE) {
jordaahh 6:c257b2060803 156 joystick.direction = downRight;
jordaahh 10:ffac6dc620ff 157 } else if ( joystick.y > DIRECTION_TOLERANCE && joystick.x < DIRECTION_TOLERANCE) {
jordaahh 6:c257b2060803 158 joystick.direction = upLeft;
jordaahh 10:ffac6dc620ff 159 } else if ( joystick.y < DIRECTION_TOLERANCE && joystick.x < DIRECTION_TOLERANCE) {
jordaahh 6:c257b2060803 160 joystick.direction = downLeft;
jordaahh 10:ffac6dc620ff 161 }
jordaahh 0:a28ad0db4228 162 // set flag for printing
jordaahh 0:a28ad0db4228 163 printFlag = 1;
jordaahh 3:11cbc2945fd7 164 }
jordaahh 3:11cbc2945fd7 165
jordaahh 5:200fa178cb3a 166
jordaahh 3:11cbc2945fd7 167 void clearCells() // turns all cells on the display off
jordaahh 3:11cbc2945fd7 168 {
jordaahh 3:11cbc2945fd7 169 // loop through cells, and clear
jordaahh 3:11cbc2945fd7 170 for (int i = 0; i < nx ; i++) {
jordaahh 3:11cbc2945fd7 171 for (int j = 0; j < ny ; j++) {
jordaahh 3:11cbc2945fd7 172 lcd.clearPixel(i,j);
jordaahh 3:11cbc2945fd7 173 }
jordaahh 3:11cbc2945fd7 174 }
jordaahh 3:11cbc2945fd7 175 lcd.refresh(); // must refresh to write buffer display
jordaahh 3:11cbc2945fd7 176 }
jordaahh 3:11cbc2945fd7 177
jordaahh 10:ffac6dc620ff 178 void flagForWall() // flag function for wmoving wall to call later
jordaahh 8:db2994eef1ab 179 {
jordaahh 8:db2994eef1ab 180 FLAG=1;
jordaahh 8:db2994eef1ab 181 }
jordaahh 8:db2994eef1ab 182
jordaahh 11:e5481bda1d6a 183 void flagForWall2() // flag function for wmoving wall to call later
jordaahh 11:e5481bda1d6a 184 {
jordaahh 11:e5481bda1d6a 185 FLAG2=1;
jordaahh 11:e5481bda1d6a 186 }
jordaahh 11:e5481bda1d6a 187
jordaahh 12:5ab932192a97 188 void flagForWall3() // flag function for moving wall to call later
jordaahh 11:e5481bda1d6a 189 {
jordaahh 11:e5481bda1d6a 190 FLAG3=1;
jordaahh 11:e5481bda1d6a 191 }
jordaahh 9:7c687ed420de 192
jordaahh 10:ffac6dc620ff 193 void menu ()
jordaahh 9:7c687ed420de 194 {
jordaahh 10:ffac6dc620ff 195 int m = 0;
jordaahh 11:e5481bda1d6a 196 //serial.attach(&serialISR); // attach serial ISR
jordaahh 11:e5481bda1d6a 197 char buffer[14]; // buffer used to store time string
jordaahh 11:e5481bda1d6a 198 char buffer2[14]; // buffer used to store time string
jordaahh 12:5ab932192a97 199
jordaahh 10:ffac6dc620ff 200
jordaahh 10:ffac6dc620ff 201 while(1) {
jordaahh 10:ffac6dc620ff 202 clearCells();
jordaahh 11:e5481bda1d6a 203 time_t seconds = time(NULL); // get current time
jordaahh 11:e5481bda1d6a 204 // format time into a string (time and date)
jordaahh 11:e5481bda1d6a 205 strftime(buffer, 14 , "%H:%M", localtime(&seconds));
jordaahh 11:e5481bda1d6a 206 strftime(buffer2, 14, "%d/%m", localtime(&seconds));
jordaahh 11:e5481bda1d6a 207
jordaahh 11:e5481bda1d6a 208 lcd.printString(buffer,26,4); // show time on lcd screen
jordaahh 11:e5481bda1d6a 209
jordaahh 11:e5481bda1d6a 210
jordaahh 10:ffac6dc620ff 211 if ((joystick.direction == RIGHT)||(joystick.direction == upRight)||(joystick.direction == downRight)) {
jordaahh 10:ffac6dc620ff 212 m++;
jordaahh 9:7c687ed420de 213 }
jordaahh 10:ffac6dc620ff 214 if ((joystick.direction == LEFT)||(joystick.direction == upLeft)||(joystick.direction == downLeft)) {
jordaahh 10:ffac6dc620ff 215 m--;
jordaahh 9:7c687ed420de 216 }
jordaahh 10:ffac6dc620ff 217 if(m > 2) {
jordaahh 10:ffac6dc620ff 218 m = 0;
jordaahh 10:ffac6dc620ff 219 }
jordaahh 10:ffac6dc620ff 220 if(m < 0) {
jordaahh 10:ffac6dc620ff 221 m = 2;
jordaahh 9:7c687ed420de 222 }
jordaahh 10:ffac6dc620ff 223 switch (m) {
jordaahh 10:ffac6dc620ff 224 case 0 :
jordaahh 10:ffac6dc620ff 225 lcd.printString("< Play Game >",0,2);
jordaahh 10:ffac6dc620ff 226 wait(0.3);
jordaahh 10:ffac6dc620ff 227 while(1) {
jordaahh 10:ffac6dc620ff 228 if(button == 1) {
jordaahh 10:ffac6dc620ff 229 clearCells();
jordaahh 10:ffac6dc620ff 230 playGame();
jordaahh 10:ffac6dc620ff 231 break;
jordaahh 10:ffac6dc620ff 232 } else {
jordaahh 10:ffac6dc620ff 233 break;
jordaahh 10:ffac6dc620ff 234 }
jordaahh 10:ffac6dc620ff 235 }
jordaahh 10:ffac6dc620ff 236 break;
jordaahh 10:ffac6dc620ff 237 case 1 :
jordaahh 10:ffac6dc620ff 238 lcd.printString("< Settings >",0,2);
jordaahh 10:ffac6dc620ff 239 wait(0.3);
jordaahh 10:ffac6dc620ff 240 while(1) {
jordaahh 10:ffac6dc620ff 241 if(button == 1) {
jordaahh 10:ffac6dc620ff 242 clearCells();
jordaahh 10:ffac6dc620ff 243 lcd.printString("setting",0,2);//enter function to commence here
jordaahh 10:ffac6dc620ff 244 wait(3.0);
jordaahh 10:ffac6dc620ff 245 break;
jordaahh 10:ffac6dc620ff 246 } else {
jordaahh 10:ffac6dc620ff 247 break;
jordaahh 10:ffac6dc620ff 248 }
jordaahh 10:ffac6dc620ff 249 }
jordaahh 10:ffac6dc620ff 250 break;
jordaahh 10:ffac6dc620ff 251 case 2 :
jordaahh 10:ffac6dc620ff 252 lcd.printString("< HighScores >",0,2);
jordaahh 10:ffac6dc620ff 253 wait(0.3);
jordaahh 10:ffac6dc620ff 254 while(1) {
jordaahh 10:ffac6dc620ff 255 if(button == 1) {
jordaahh 10:ffac6dc620ff 256 clearCells();
jordaahh 10:ffac6dc620ff 257 lcd.printString("scoring",0,2); //enter function to commence here
jordaahh 10:ffac6dc620ff 258 wait(3.0);
jordaahh 10:ffac6dc620ff 259 break;
jordaahh 10:ffac6dc620ff 260 } else {
jordaahh 10:ffac6dc620ff 261 break;
jordaahh 10:ffac6dc620ff 262 }
jordaahh 10:ffac6dc620ff 263 }
jordaahh 10:ffac6dc620ff 264 break;
jordaahh 10:ffac6dc620ff 265
jordaahh 9:7c687ed420de 266 }
jordaahh 10:ffac6dc620ff 267 }
jordaahh 9:7c687ed420de 268 }
jordaahh 9:7c687ed420de 269
jordaahh 11:e5481bda1d6a 270
jordaahh 10:ffac6dc620ff 271 void playGame()
jordaahh 9:7c687ed420de 272 {
jordaahh 10:ffac6dc620ff 273 int i=24; // initial coordinates for player object
jordaahh 10:ffac6dc620ff 274 int j=42;
jordaahh 10:ffac6dc620ff 275 int x = 0; // wall starts from the coordinates (0,0)
jordaahh 10:ffac6dc620ff 276 int y = 0;
jordaahh 10:ffac6dc620ff 277 int z = 30;
jordaahh 11:e5481bda1d6a 278 int score = 0;
jordaahh 11:e5481bda1d6a 279 int a = 0;
jordaahh 11:e5481bda1d6a 280 int b = 47;
jordaahh 11:e5481bda1d6a 281 int d = 30;
jordaahh 11:e5481bda1d6a 282 int f = 0;
jordaahh 11:e5481bda1d6a 283 int g = 0;
jordaahh 11:e5481bda1d6a 284 int h = 24;
jordaahh 11:e5481bda1d6a 285 int q = 83;
jordaahh 11:e5481bda1d6a 286 int w = 0;
jordaahh 11:e5481bda1d6a 287 int e = 24;
jordaahh 11:e5481bda1d6a 288
jordaahh 10:ffac6dc620ff 289 lcd.printString("GO!",35,2);
jordaahh 10:ffac6dc620ff 290 wait(1);
jordaahh 10:ffac6dc620ff 291 while(1) {
jordaahh 10:ffac6dc620ff 292 lcd.drawRect(i,j,2,2,0);
jordaahh 9:7c687ed420de 293 clearCells();
jordaahh 10:ffac6dc620ff 294 lcd.drawLine(x,y,z,y,1); // draws a line at the top of the screen to symbolise a wall
jordaahh 10:ffac6dc620ff 295 lcd.drawLine(z+10,y,83,y,1); // there is a gap in the wall which is 10 pixels wide and the objective of the game is to pass through it
jordaahh 10:ffac6dc620ff 296 if(FLAG==1) {
jordaahh 10:ffac6dc620ff 297 FLAG=0;
jordaahh 10:ffac6dc620ff 298 y++; // everytime the flag changes to one it is reset and the wall moves down by one pixel
jordaahh 10:ffac6dc620ff 299 }
jordaahh 10:ffac6dc620ff 300 if(y > 47) { // when the wall reaches the bottom a new wall is generated at the top and with another 10 pixel gap in a different place
jordaahh 10:ffac6dc620ff 301 y = 0;
jordaahh 10:ffac6dc620ff 302 z = rand()%74;
jordaahh 11:e5481bda1d6a 303 score++;
jordaahh 11:e5481bda1d6a 304 }
jordaahh 11:e5481bda1d6a 305 if(( score > 1)&&(score < 5)) {
jordaahh 11:e5481bda1d6a 306 lcd.drawLine(a,b,d,b,1); // draws a line at the top of the screen to symbolise a wall
jordaahh 11:e5481bda1d6a 307 lcd.drawLine(d+10,b,83,b,1); // there is a gap in the wall which is 10 pixels wide and the objective of the game is to pass through it
jordaahh 11:e5481bda1d6a 308 if(FLAG3==1) {
jordaahh 11:e5481bda1d6a 309 FLAG3=0;
jordaahh 11:e5481bda1d6a 310 b--; // everytime the flag changes to one it is reset and the wall moves down by one pixel
jordaahh 11:e5481bda1d6a 311 }
jordaahh 11:e5481bda1d6a 312 }
jordaahh 11:e5481bda1d6a 313 if(b < 0) { // when the wall reaches the bottom a new wall is generated at the top and with another 10 pixel gap in a different place
jordaahh 11:e5481bda1d6a 314 b = 47;
jordaahh 11:e5481bda1d6a 315 d = rand()%74;
jordaahh 11:e5481bda1d6a 316 }
jordaahh 11:e5481bda1d6a 317 if(( score > 5)&&(score < 9)) {
jordaahh 11:e5481bda1d6a 318 lcd.drawLine(f,g,f,h,1);
jordaahh 11:e5481bda1d6a 319 lcd.drawLine(f,h+10,f,47,1);
jordaahh 11:e5481bda1d6a 320 if(FLAG2==1) {
jordaahh 11:e5481bda1d6a 321 FLAG2=0;
jordaahh 11:e5481bda1d6a 322 f++; // everytime the flag changes to one it is reset and the wall moves down by one pixel
jordaahh 11:e5481bda1d6a 323 }
jordaahh 11:e5481bda1d6a 324 }
jordaahh 11:e5481bda1d6a 325 if( f > 83) { // when the wall reaches the bottom a new wall is generated at the top and with another 10 pixel gap in a different place
jordaahh 11:e5481bda1d6a 326 f = 0;
jordaahh 11:e5481bda1d6a 327 h = rand()%38;
jordaahh 11:e5481bda1d6a 328 }
jordaahh 11:e5481bda1d6a 329 if(( score > 10)&&(score < 15)) {
jordaahh 11:e5481bda1d6a 330 lcd.drawLine(q,w,q,e,1); // draws a line at the top of the screen to symbolise a wall
jordaahh 11:e5481bda1d6a 331 lcd.drawLine(q,e+10,q,47,1); // there is a gap in the wall which is 10 pixels wide and the objective of the game is to pass through it
jordaahh 11:e5481bda1d6a 332 if(FLAG3==1) {
jordaahh 11:e5481bda1d6a 333 FLAG3=0;
jordaahh 11:e5481bda1d6a 334 q--; // everytime the flag changes to one it is reset and the wall moves down by one pixel
jordaahh 11:e5481bda1d6a 335 }
jordaahh 11:e5481bda1d6a 336 }
jordaahh 11:e5481bda1d6a 337 if(q < 0) { // when the wall reaches the bottom a new wall is generated at the top and with another 10 pixel gap in a different place
jordaahh 11:e5481bda1d6a 338 q = 83;
jordaahh 11:e5481bda1d6a 339 e = rand()%38;
jordaahh 11:e5481bda1d6a 340 }
jordaahh 11:e5481bda1d6a 341 if( score > 15) {
jordaahh 11:e5481bda1d6a 342 lcd.drawLine(q,w,q,e,1); // draws a line at the top of the screen to symbolise a wall
jordaahh 11:e5481bda1d6a 343 lcd.drawLine(q,e+10,q,47,1); // there is a gap in the wall which is 10 pixels wide and the objective of the game is to pass through it
jordaahh 11:e5481bda1d6a 344 if(FLAG3==1) {
jordaahh 11:e5481bda1d6a 345 FLAG3=0;
jordaahh 11:e5481bda1d6a 346 q--; // everytime the flag changes to one it is reset and the wall moves down by one pixel
jordaahh 11:e5481bda1d6a 347 }
jordaahh 11:e5481bda1d6a 348 }
jordaahh 11:e5481bda1d6a 349 if( score > 20) {
jordaahh 11:e5481bda1d6a 350 lcd.drawLine(a,b,d,b,1); // draws a line at the top of the screen to symbolise a wall
jordaahh 11:e5481bda1d6a 351 lcd.drawLine(d+10,b,83,b,1); // there is a gap in the wall which is 10 pixels wide and the objective of the game is to pass through it
jordaahh 11:e5481bda1d6a 352 if(FLAG2==1) {
jordaahh 11:e5481bda1d6a 353 FLAG2=0;
jordaahh 11:e5481bda1d6a 354 b--; // everytime the flag changes to one it is reset and the wall moves down by one pixel
jordaahh 11:e5481bda1d6a 355 }
jordaahh 10:ffac6dc620ff 356 }
jordaahh 10:ffac6dc620ff 357
jordaahh 10:ffac6dc620ff 358 if( j > 45) { // rules to prevent player object going off the screen
jordaahh 10:ffac6dc620ff 359 j = 45;
jordaahh 10:ffac6dc620ff 360 }
jordaahh 10:ffac6dc620ff 361 if( i > 81) {
jordaahh 10:ffac6dc620ff 362 i = 81;
jordaahh 10:ffac6dc620ff 363 }
jordaahh 10:ffac6dc620ff 364 if( j < 0) {
jordaahh 10:ffac6dc620ff 365 j = 0;
jordaahh 10:ffac6dc620ff 366 }
jordaahh 10:ffac6dc620ff 367 if( i < 0) {
jordaahh 10:ffac6dc620ff 368 i = 0;
jordaahh 10:ffac6dc620ff 369 }
jordaahh 10:ffac6dc620ff 370
jordaahh 10:ffac6dc620ff 371 if (printFlag) { // if flag set, clear flag and implicate joystick functions
jordaahh 10:ffac6dc620ff 372 printFlag = 0;
jordaahh 10:ffac6dc620ff 373
jordaahh 10:ffac6dc620ff 374
jordaahh 10:ffac6dc620ff 375 // check joystick direction
jordaahh 10:ffac6dc620ff 376 if (joystick.direction == UP) {
jordaahh 10:ffac6dc620ff 377 j--;
jordaahh 10:ffac6dc620ff 378 }
jordaahh 10:ffac6dc620ff 379 if (joystick.direction == DOWN) {
jordaahh 10:ffac6dc620ff 380 j++;
jordaahh 10:ffac6dc620ff 381 }
jordaahh 10:ffac6dc620ff 382 if (joystick.direction == LEFT) {
jordaahh 11:e5481bda1d6a 383 i++;
jordaahh 10:ffac6dc620ff 384 }
jordaahh 10:ffac6dc620ff 385 if (joystick.direction == RIGHT) {
jordaahh 11:e5481bda1d6a 386 i--;
jordaahh 10:ffac6dc620ff 387 }
jordaahh 10:ffac6dc620ff 388 if (joystick.direction == upRight) {
jordaahh 10:ffac6dc620ff 389 j--;
jordaahh 11:e5481bda1d6a 390 i--;
jordaahh 11:e5481bda1d6a 391 }
jordaahh 11:e5481bda1d6a 392 if (joystick.direction == downRight) {
jordaahh 11:e5481bda1d6a 393 j++;
jordaahh 11:e5481bda1d6a 394 i--;
jordaahh 11:e5481bda1d6a 395 }
jordaahh 11:e5481bda1d6a 396 if (joystick.direction == upLeft) {
jordaahh 11:e5481bda1d6a 397 j--;
jordaahh 10:ffac6dc620ff 398 i++;
jordaahh 10:ffac6dc620ff 399 }
jordaahh 11:e5481bda1d6a 400 if (joystick.direction == downLeft) {
jordaahh 10:ffac6dc620ff 401 j++;
jordaahh 10:ffac6dc620ff 402 i++;
jordaahh 10:ffac6dc620ff 403 }
jordaahh 10:ffac6dc620ff 404 if (joystick.direction == CENTRE) {
jordaahh 10:ffac6dc620ff 405 i=i;
jordaahh 10:ffac6dc620ff 406 j=j;
jordaahh 10:ffac6dc620ff 407 }
jordaahh 10:ffac6dc620ff 408 if (lcd.getPixel(i,j-1)) {
jordaahh 12:5ab932192a97 409 writeDataToFile(score); // write current value to disk
jordaahh 10:ffac6dc620ff 410 clearCells();
jordaahh 10:ffac6dc620ff 411 int m = 1;
jordaahh 10:ffac6dc620ff 412 lcd.printString("game over",1,2);
jordaahh 10:ffac6dc620ff 413 wait(0.5);
jordaahh 9:7c687ed420de 414 clearCells();
jordaahh 10:ffac6dc620ff 415 lcd.printString("Play again?",0,0);
jordaahh 10:ffac6dc620ff 416 lcd.printString("Yes No",0,3);
jordaahh 10:ffac6dc620ff 417 wait(2);
jordaahh 10:ffac6dc620ff 418
jordaahh 10:ffac6dc620ff 419 while(1) {
jordaahh 10:ffac6dc620ff 420 clearCells();
jordaahh 10:ffac6dc620ff 421 if ((joystick.direction == RIGHT)||(joystick.direction == upRight)||(joystick.direction == downRight)) {
jordaahh 11:e5481bda1d6a 422 m--;
jordaahh 10:ffac6dc620ff 423 }
jordaahh 10:ffac6dc620ff 424 if ((joystick.direction == LEFT)||(joystick.direction == upLeft)||(joystick.direction == downLeft)) {
jordaahh 11:e5481bda1d6a 425 m++;
jordaahh 10:ffac6dc620ff 426 }
jordaahh 10:ffac6dc620ff 427 if(m > 2) {
jordaahh 10:ffac6dc620ff 428 m = 2;
jordaahh 10:ffac6dc620ff 429 }
jordaahh 10:ffac6dc620ff 430 if(m < 0) {
jordaahh 10:ffac6dc620ff 431 m = 0;
jordaahh 10:ffac6dc620ff 432 }
jordaahh 10:ffac6dc620ff 433 switch (m) {
jordaahh 10:ffac6dc620ff 434 case 0 :
jordaahh 10:ffac6dc620ff 435 lcd.printString("YES",0,3);
jordaahh 10:ffac6dc620ff 436 wait(0.3);
jordaahh 10:ffac6dc620ff 437 while(1) {
jordaahh 10:ffac6dc620ff 438 if(button == 1) {
jordaahh 10:ffac6dc620ff 439 clearCells();
jordaahh 10:ffac6dc620ff 440 playGame();
jordaahh 10:ffac6dc620ff 441 break;
jordaahh 10:ffac6dc620ff 442 } else {
jordaahh 10:ffac6dc620ff 443 break;
jordaahh 10:ffac6dc620ff 444 }
jordaahh 10:ffac6dc620ff 445 }
jordaahh 10:ffac6dc620ff 446 break;
jordaahh 10:ffac6dc620ff 447 case 1 :
jordaahh 10:ffac6dc620ff 448 lcd.printString("Play again?",0,0);
jordaahh 10:ffac6dc620ff 449 lcd.printString("Yes No",0,3);
jordaahh 10:ffac6dc620ff 450 wait(0.3);
jordaahh 10:ffac6dc620ff 451 break;
jordaahh 10:ffac6dc620ff 452 case 2 :
jordaahh 10:ffac6dc620ff 453 lcd.printString("NO",70,3);
jordaahh 10:ffac6dc620ff 454 wait(0.3);
jordaahh 10:ffac6dc620ff 455 while(1) {
jordaahh 10:ffac6dc620ff 456 if(button == 1) {
jordaahh 10:ffac6dc620ff 457 clearCells();
jordaahh 10:ffac6dc620ff 458 lcd.printString("Leaving Game",0,2); //enter function to commence here
jordaahh 10:ffac6dc620ff 459 wait(3.0);
jordaahh 10:ffac6dc620ff 460 menu();
jordaahh 10:ffac6dc620ff 461 break;
jordaahh 10:ffac6dc620ff 462 } else {
jordaahh 10:ffac6dc620ff 463 break;
jordaahh 10:ffac6dc620ff 464 }
jordaahh 10:ffac6dc620ff 465 }
jordaahh 10:ffac6dc620ff 466 break;
jordaahh 10:ffac6dc620ff 467
jordaahh 10:ffac6dc620ff 468 }
jordaahh 9:7c687ed420de 469 }
jordaahh 10:ffac6dc620ff 470 }
jordaahh 10:ffac6dc620ff 471 if (lcd.getPixel(i+1,j-1)) {
jordaahh 12:5ab932192a97 472 writeDataToFile(score); // write current value to disk
jordaahh 10:ffac6dc620ff 473 clearCells();
jordaahh 10:ffac6dc620ff 474 int m = 1;
jordaahh 10:ffac6dc620ff 475 lcd.printString("game over",1,2);
jordaahh 10:ffac6dc620ff 476 wait(0.5);
jordaahh 9:7c687ed420de 477 clearCells();
jordaahh 10:ffac6dc620ff 478 lcd.printString("Play again?",0,0);
jordaahh 10:ffac6dc620ff 479 lcd.printString("Yes No",0,3);
jordaahh 10:ffac6dc620ff 480 wait(2);
jordaahh 10:ffac6dc620ff 481
jordaahh 10:ffac6dc620ff 482 while(1) {
jordaahh 10:ffac6dc620ff 483 clearCells();
jordaahh 10:ffac6dc620ff 484 if ((joystick.direction == RIGHT)||(joystick.direction == upRight)||(joystick.direction == downRight)) {
jordaahh 11:e5481bda1d6a 485 m--;
jordaahh 10:ffac6dc620ff 486 }
jordaahh 10:ffac6dc620ff 487 if ((joystick.direction == LEFT)||(joystick.direction == upLeft)||(joystick.direction == downLeft)) {
jordaahh 11:e5481bda1d6a 488 m++;
jordaahh 10:ffac6dc620ff 489 }
jordaahh 10:ffac6dc620ff 490 if(m > 2) {
jordaahh 10:ffac6dc620ff 491 m = 2;
jordaahh 10:ffac6dc620ff 492 }
jordaahh 10:ffac6dc620ff 493 if(m < 0) {
jordaahh 10:ffac6dc620ff 494 m = 0;
jordaahh 10:ffac6dc620ff 495 }
jordaahh 10:ffac6dc620ff 496 switch (m) {
jordaahh 10:ffac6dc620ff 497 case 0 :
jordaahh 10:ffac6dc620ff 498 lcd.printString("YES",0,3);
jordaahh 10:ffac6dc620ff 499 wait(0.3);
jordaahh 10:ffac6dc620ff 500 while(1) {
jordaahh 10:ffac6dc620ff 501 if(button == 1) {
jordaahh 10:ffac6dc620ff 502 clearCells();
jordaahh 10:ffac6dc620ff 503 playGame();
jordaahh 10:ffac6dc620ff 504 break;
jordaahh 10:ffac6dc620ff 505 } else {
jordaahh 10:ffac6dc620ff 506 break;
jordaahh 10:ffac6dc620ff 507 }
jordaahh 10:ffac6dc620ff 508 }
jordaahh 10:ffac6dc620ff 509 break;
jordaahh 10:ffac6dc620ff 510 case 1 :
jordaahh 10:ffac6dc620ff 511 lcd.printString("Play again?",0,0);
jordaahh 10:ffac6dc620ff 512 lcd.printString("Yes No",0,3);
jordaahh 10:ffac6dc620ff 513 wait(0.3);
jordaahh 10:ffac6dc620ff 514 break;
jordaahh 10:ffac6dc620ff 515 case 2 :
jordaahh 10:ffac6dc620ff 516 lcd.printString("NO",70,3);
jordaahh 10:ffac6dc620ff 517 wait(0.3);
jordaahh 10:ffac6dc620ff 518 while(1) {
jordaahh 10:ffac6dc620ff 519 if(button == 1) {
jordaahh 10:ffac6dc620ff 520 clearCells();
jordaahh 10:ffac6dc620ff 521 lcd.printString("Leaving Game",0,2); //enter function to commence here
jordaahh 10:ffac6dc620ff 522 wait(3.0);
jordaahh 10:ffac6dc620ff 523 menu();
jordaahh 10:ffac6dc620ff 524 break;
jordaahh 10:ffac6dc620ff 525 } else {
jordaahh 10:ffac6dc620ff 526 break;
jordaahh 10:ffac6dc620ff 527 }
jordaahh 10:ffac6dc620ff 528 }
jordaahh 10:ffac6dc620ff 529 break;
jordaahh 10:ffac6dc620ff 530 }
jordaahh 9:7c687ed420de 531 }
jordaahh 10:ffac6dc620ff 532 }
jordaahh 10:ffac6dc620ff 533 if (lcd.getPixel(i+2,j-1)) {
jordaahh 12:5ab932192a97 534 writeDataToFile(score); // write current value to disk
jordaahh 10:ffac6dc620ff 535 clearCells();
jordaahh 10:ffac6dc620ff 536 int m = 1;
jordaahh 10:ffac6dc620ff 537 lcd.printString("game over",1,2);
jordaahh 10:ffac6dc620ff 538 wait(0.5);
jordaahh 10:ffac6dc620ff 539 clearCells();
jordaahh 10:ffac6dc620ff 540 lcd.printString("Play again?",0,0);
jordaahh 10:ffac6dc620ff 541 lcd.printString("Yes No",0,3);
jordaahh 10:ffac6dc620ff 542 wait(2);
jordaahh 10:ffac6dc620ff 543
jordaahh 10:ffac6dc620ff 544 while(1) {
jordaahh 10:ffac6dc620ff 545 clearCells();
jordaahh 10:ffac6dc620ff 546 if ((joystick.direction == RIGHT)||(joystick.direction == upRight)||(joystick.direction == downRight)) {
jordaahh 11:e5481bda1d6a 547 m--;
jordaahh 10:ffac6dc620ff 548 }
jordaahh 10:ffac6dc620ff 549 if ((joystick.direction == LEFT)||(joystick.direction == upLeft)||(joystick.direction == downLeft)) {
jordaahh 11:e5481bda1d6a 550 m++;
jordaahh 10:ffac6dc620ff 551 }
jordaahh 10:ffac6dc620ff 552 if(m > 2) {
jordaahh 10:ffac6dc620ff 553 m = 2;
jordaahh 10:ffac6dc620ff 554 }
jordaahh 10:ffac6dc620ff 555 if(m < 0) {
jordaahh 10:ffac6dc620ff 556 m = 0;
jordaahh 10:ffac6dc620ff 557 }
jordaahh 10:ffac6dc620ff 558 switch (m) {
jordaahh 10:ffac6dc620ff 559 case 0 :
jordaahh 10:ffac6dc620ff 560 lcd.printString("YES",0,3);
jordaahh 10:ffac6dc620ff 561 wait(0.3);
jordaahh 10:ffac6dc620ff 562 while(1) {
jordaahh 10:ffac6dc620ff 563 if(button == 1) {
jordaahh 10:ffac6dc620ff 564 clearCells();
jordaahh 10:ffac6dc620ff 565 playGame();
jordaahh 10:ffac6dc620ff 566 break;
jordaahh 10:ffac6dc620ff 567 } else {
jordaahh 10:ffac6dc620ff 568 break;
jordaahh 10:ffac6dc620ff 569 }
jordaahh 10:ffac6dc620ff 570 }
jordaahh 10:ffac6dc620ff 571 break;
jordaahh 10:ffac6dc620ff 572 case 1 :
jordaahh 10:ffac6dc620ff 573 lcd.printString("Play again?",0,0);
jordaahh 10:ffac6dc620ff 574 lcd.printString("Yes No",0,3);
jordaahh 10:ffac6dc620ff 575 wait(0.3);
jordaahh 10:ffac6dc620ff 576 break;
jordaahh 10:ffac6dc620ff 577 case 2 :
jordaahh 10:ffac6dc620ff 578 lcd.printString("NO",70,3);
jordaahh 10:ffac6dc620ff 579 wait(0.3);
jordaahh 10:ffac6dc620ff 580 while(1) {
jordaahh 10:ffac6dc620ff 581 if(button == 1) {
jordaahh 10:ffac6dc620ff 582 clearCells();
jordaahh 10:ffac6dc620ff 583 lcd.printString("Leaving Game",0,2); //enter function to commence here
jordaahh 10:ffac6dc620ff 584 wait(3.0);
jordaahh 10:ffac6dc620ff 585 menu();
jordaahh 10:ffac6dc620ff 586 break;
jordaahh 10:ffac6dc620ff 587 } else {
jordaahh 10:ffac6dc620ff 588 break;
jordaahh 10:ffac6dc620ff 589 }
jordaahh 10:ffac6dc620ff 590 }
jordaahh 10:ffac6dc620ff 591 break;
jordaahh 10:ffac6dc620ff 592
jordaahh 10:ffac6dc620ff 593 }
jordaahh 9:7c687ed420de 594 }
jordaahh 9:7c687ed420de 595 }
jordaahh 11:e5481bda1d6a 596 if (lcd.getPixel(i,j)) {
jordaahh 12:5ab932192a97 597 writeDataToFile(score); // write current value to disk
jordaahh 11:e5481bda1d6a 598 clearCells();
jordaahh 11:e5481bda1d6a 599 int m = 1;
jordaahh 11:e5481bda1d6a 600 lcd.printString("game over",1,2);
jordaahh 11:e5481bda1d6a 601 wait(0.5);
jordaahh 11:e5481bda1d6a 602 clearCells();
jordaahh 11:e5481bda1d6a 603 lcd.printString("Play again?",0,0);
jordaahh 11:e5481bda1d6a 604 lcd.printString("Yes No",0,3);
jordaahh 11:e5481bda1d6a 605 wait(2);
jordaahh 9:7c687ed420de 606
jordaahh 11:e5481bda1d6a 607 while(1) {
jordaahh 11:e5481bda1d6a 608 clearCells();
jordaahh 11:e5481bda1d6a 609 if ((joystick.direction == RIGHT)||(joystick.direction == upRight)||(joystick.direction == downRight)) {
jordaahh 11:e5481bda1d6a 610 m--;
jordaahh 11:e5481bda1d6a 611 }
jordaahh 11:e5481bda1d6a 612 if ((joystick.direction == LEFT)||(joystick.direction == upLeft)||(joystick.direction == downLeft)) {
jordaahh 11:e5481bda1d6a 613 m++;
jordaahh 11:e5481bda1d6a 614 }
jordaahh 11:e5481bda1d6a 615 if(m > 2) {
jordaahh 11:e5481bda1d6a 616 m = 2;
jordaahh 11:e5481bda1d6a 617 }
jordaahh 11:e5481bda1d6a 618 if(m < 0) {
jordaahh 11:e5481bda1d6a 619 m = 0;
jordaahh 11:e5481bda1d6a 620 }
jordaahh 11:e5481bda1d6a 621 switch (m) {
jordaahh 11:e5481bda1d6a 622 case 0 :
jordaahh 11:e5481bda1d6a 623 lcd.printString("YES",0,3);
jordaahh 11:e5481bda1d6a 624 wait(0.3);
jordaahh 11:e5481bda1d6a 625 while(1) {
jordaahh 11:e5481bda1d6a 626 if(button == 1) {
jordaahh 11:e5481bda1d6a 627 clearCells();
jordaahh 11:e5481bda1d6a 628 playGame();
jordaahh 11:e5481bda1d6a 629 break;
jordaahh 11:e5481bda1d6a 630 } else {
jordaahh 11:e5481bda1d6a 631 break;
jordaahh 11:e5481bda1d6a 632 }
jordaahh 11:e5481bda1d6a 633 }
jordaahh 11:e5481bda1d6a 634 break;
jordaahh 11:e5481bda1d6a 635 case 1 :
jordaahh 11:e5481bda1d6a 636 lcd.printString("Play again?",0,0);
jordaahh 11:e5481bda1d6a 637 lcd.printString("Yes No",0,3);
jordaahh 11:e5481bda1d6a 638 wait(0.3);
jordaahh 11:e5481bda1d6a 639 break;
jordaahh 11:e5481bda1d6a 640 case 2 :
jordaahh 11:e5481bda1d6a 641 lcd.printString("NO",70,3);
jordaahh 11:e5481bda1d6a 642 wait(0.3);
jordaahh 11:e5481bda1d6a 643 while(1) {
jordaahh 11:e5481bda1d6a 644 if(button == 1) {
jordaahh 11:e5481bda1d6a 645 clearCells();
jordaahh 11:e5481bda1d6a 646 lcd.printString("Leaving Game",0,2); //enter function to commence here
jordaahh 11:e5481bda1d6a 647 wait(3.0);
jordaahh 11:e5481bda1d6a 648 menu();
jordaahh 11:e5481bda1d6a 649 break;
jordaahh 11:e5481bda1d6a 650 } else {
jordaahh 11:e5481bda1d6a 651 break;
jordaahh 11:e5481bda1d6a 652 }
jordaahh 11:e5481bda1d6a 653 }
jordaahh 11:e5481bda1d6a 654 break;
jordaahh 11:e5481bda1d6a 655 }
jordaahh 11:e5481bda1d6a 656 }
jordaahh 11:e5481bda1d6a 657 }
jordaahh 11:e5481bda1d6a 658 if (lcd.getPixel(i+1,j)) {
jordaahh 12:5ab932192a97 659 writeDataToFile(score); // write current value to disk
jordaahh 11:e5481bda1d6a 660 clearCells();
jordaahh 11:e5481bda1d6a 661 int m = 1;
jordaahh 11:e5481bda1d6a 662 lcd.printString("game over",1,2);
jordaahh 11:e5481bda1d6a 663 wait(0.5);
jordaahh 11:e5481bda1d6a 664 clearCells();
jordaahh 11:e5481bda1d6a 665 lcd.printString("Play again?",0,0);
jordaahh 11:e5481bda1d6a 666 lcd.printString("Yes No",0,3);
jordaahh 11:e5481bda1d6a 667 wait(2);
jordaahh 11:e5481bda1d6a 668
jordaahh 11:e5481bda1d6a 669 while(1) {
jordaahh 11:e5481bda1d6a 670 clearCells();
jordaahh 11:e5481bda1d6a 671 if ((joystick.direction == RIGHT)||(joystick.direction == upRight)||(joystick.direction == downRight)) {
jordaahh 11:e5481bda1d6a 672 m--;
jordaahh 11:e5481bda1d6a 673 }
jordaahh 11:e5481bda1d6a 674 if ((joystick.direction == LEFT)||(joystick.direction == upLeft)||(joystick.direction == downLeft)) {
jordaahh 11:e5481bda1d6a 675 m++;
jordaahh 11:e5481bda1d6a 676 }
jordaahh 11:e5481bda1d6a 677 if(m > 2) {
jordaahh 11:e5481bda1d6a 678 m = 2;
jordaahh 11:e5481bda1d6a 679 }
jordaahh 11:e5481bda1d6a 680 if(m < 0) {
jordaahh 11:e5481bda1d6a 681 m = 0;
jordaahh 11:e5481bda1d6a 682 }
jordaahh 11:e5481bda1d6a 683 switch (m) {
jordaahh 11:e5481bda1d6a 684 case 0 :
jordaahh 11:e5481bda1d6a 685 lcd.printString("YES",0,3);
jordaahh 11:e5481bda1d6a 686 wait(0.3);
jordaahh 11:e5481bda1d6a 687 while(1) {
jordaahh 11:e5481bda1d6a 688 if(button == 1) {
jordaahh 11:e5481bda1d6a 689 clearCells();
jordaahh 11:e5481bda1d6a 690 playGame();
jordaahh 11:e5481bda1d6a 691 break;
jordaahh 11:e5481bda1d6a 692 } else {
jordaahh 11:e5481bda1d6a 693 break;
jordaahh 11:e5481bda1d6a 694 }
jordaahh 11:e5481bda1d6a 695 }
jordaahh 11:e5481bda1d6a 696 break;
jordaahh 11:e5481bda1d6a 697 case 1 :
jordaahh 11:e5481bda1d6a 698 lcd.printString("Play again?",0,0);
jordaahh 11:e5481bda1d6a 699 lcd.printString("Yes No",0,3);
jordaahh 11:e5481bda1d6a 700 wait(0.3);
jordaahh 11:e5481bda1d6a 701 break;
jordaahh 11:e5481bda1d6a 702 case 2 :
jordaahh 11:e5481bda1d6a 703 lcd.printString("NO",70,3);
jordaahh 11:e5481bda1d6a 704 wait(0.3);
jordaahh 11:e5481bda1d6a 705 while(1) {
jordaahh 11:e5481bda1d6a 706 if(button == 1) {
jordaahh 11:e5481bda1d6a 707 clearCells();
jordaahh 11:e5481bda1d6a 708 lcd.printString("Leaving Game",0,2); //enter function to commence here
jordaahh 11:e5481bda1d6a 709 wait(3.0);
jordaahh 11:e5481bda1d6a 710 menu();
jordaahh 11:e5481bda1d6a 711 break;
jordaahh 11:e5481bda1d6a 712 } else {
jordaahh 11:e5481bda1d6a 713 break;
jordaahh 11:e5481bda1d6a 714 }
jordaahh 11:e5481bda1d6a 715 }
jordaahh 11:e5481bda1d6a 716 break;
jordaahh 11:e5481bda1d6a 717 }
jordaahh 11:e5481bda1d6a 718 }
jordaahh 11:e5481bda1d6a 719 }
jordaahh 11:e5481bda1d6a 720 if (lcd.getPixel(i+2,j)) {
jordaahh 12:5ab932192a97 721 writeDataToFile(score); // write current value to disk
jordaahh 11:e5481bda1d6a 722 clearCells();
jordaahh 11:e5481bda1d6a 723 int m = 1;
jordaahh 11:e5481bda1d6a 724 lcd.printString("game over",1,2);
jordaahh 11:e5481bda1d6a 725 wait(0.5);
jordaahh 11:e5481bda1d6a 726 clearCells();
jordaahh 11:e5481bda1d6a 727 lcd.printString("Play again?",0,0);
jordaahh 11:e5481bda1d6a 728 lcd.printString("Yes No",0,3);
jordaahh 11:e5481bda1d6a 729 wait(2);
jordaahh 11:e5481bda1d6a 730
jordaahh 11:e5481bda1d6a 731 while(1) {
jordaahh 11:e5481bda1d6a 732 clearCells();
jordaahh 11:e5481bda1d6a 733 if ((joystick.direction == RIGHT)||(joystick.direction == upRight)||(joystick.direction == downRight)) {
jordaahh 11:e5481bda1d6a 734 m--;
jordaahh 11:e5481bda1d6a 735 }
jordaahh 11:e5481bda1d6a 736 if ((joystick.direction == LEFT)||(joystick.direction == upLeft)||(joystick.direction == downLeft)) {
jordaahh 11:e5481bda1d6a 737 m++;
jordaahh 11:e5481bda1d6a 738 }
jordaahh 11:e5481bda1d6a 739 if(m > 2) {
jordaahh 11:e5481bda1d6a 740 m = 2;
jordaahh 11:e5481bda1d6a 741 }
jordaahh 11:e5481bda1d6a 742 if(m < 0) {
jordaahh 11:e5481bda1d6a 743 m = 0;
jordaahh 11:e5481bda1d6a 744 }
jordaahh 11:e5481bda1d6a 745 switch (m) {
jordaahh 11:e5481bda1d6a 746 case 0 :
jordaahh 11:e5481bda1d6a 747 lcd.printString("YES",0,3);
jordaahh 11:e5481bda1d6a 748 wait(0.3);
jordaahh 11:e5481bda1d6a 749 while(1) {
jordaahh 11:e5481bda1d6a 750 if(button == 1) {
jordaahh 11:e5481bda1d6a 751 clearCells();
jordaahh 11:e5481bda1d6a 752 playGame();
jordaahh 11:e5481bda1d6a 753 break;
jordaahh 11:e5481bda1d6a 754 } else {
jordaahh 11:e5481bda1d6a 755 break;
jordaahh 11:e5481bda1d6a 756 }
jordaahh 11:e5481bda1d6a 757 }
jordaahh 11:e5481bda1d6a 758 break;
jordaahh 11:e5481bda1d6a 759 case 1 :
jordaahh 11:e5481bda1d6a 760 lcd.printString("Play again?",0,0);
jordaahh 11:e5481bda1d6a 761 lcd.printString("Yes No",0,3);
jordaahh 11:e5481bda1d6a 762 wait(0.3);
jordaahh 11:e5481bda1d6a 763 break;
jordaahh 11:e5481bda1d6a 764 case 2 :
jordaahh 11:e5481bda1d6a 765 lcd.printString("NO",70,3);
jordaahh 11:e5481bda1d6a 766 wait(0.3);
jordaahh 11:e5481bda1d6a 767 while(1) {
jordaahh 11:e5481bda1d6a 768 if(button == 1) {
jordaahh 11:e5481bda1d6a 769 clearCells();
jordaahh 11:e5481bda1d6a 770 lcd.printString("Leaving Game",0,2); //enter function to commence here
jordaahh 11:e5481bda1d6a 771 wait(3.0);
jordaahh 11:e5481bda1d6a 772 menu();
jordaahh 11:e5481bda1d6a 773 break;
jordaahh 11:e5481bda1d6a 774 } else {
jordaahh 11:e5481bda1d6a 775 break;
jordaahh 11:e5481bda1d6a 776 }
jordaahh 11:e5481bda1d6a 777 }
jordaahh 11:e5481bda1d6a 778 break;
jordaahh 11:e5481bda1d6a 779 }
jordaahh 11:e5481bda1d6a 780 }
jordaahh 11:e5481bda1d6a 781 }
jordaahh 10:ffac6dc620ff 782 }
jordaahh 10:ffac6dc620ff 783 }
jordaahh 9:7c687ed420de 784 }
jordaahh 10:ffac6dc620ff 785
jordaahh 11:e5481bda1d6a 786 // currently working on brightness and volume function
jordaahh 11:e5481bda1d6a 787
jordaahh 11:e5481bda1d6a 788 /*void BandV()
jordaahh 11:e5481bda1d6a 789 {
jordaahh 11:e5481bda1d6a 790 int t = 0;
jordaahh 11:e5481bda1d6a 791 while(1) {
jordaahh 11:e5481bda1d6a 792 clearCells();
jordaahh 11:e5481bda1d6a 793 if ((joystick.direction == RIGHT)||(joystick.direction == upRight)||(joystick.direction == downRight)) {
jordaahh 11:e5481bda1d6a 794 t++;
jordaahh 11:e5481bda1d6a 795 }
jordaahh 11:e5481bda1d6a 796 if ((joystick.direction == LEFT)||(joystick.direction == upLeft)||(joystick.direction == downLeft)) {
jordaahh 11:e5481bda1d6a 797 t--;
jordaahh 11:e5481bda1d6a 798 }
jordaahh 11:e5481bda1d6a 799 if(t > 1) {
jordaahh 11:e5481bda1d6a 800 t = 0;
jordaahh 11:e5481bda1d6a 801 }
jordaahh 11:e5481bda1d6a 802 if(t < 0) {
jordaahh 11:e5481bda1d6a 803 t = 1;
jordaahh 11:e5481bda1d6a 804 }
jordaahh 11:e5481bda1d6a 805 switch (t) {
jordaahh 11:e5481bda1d6a 806 case 0 :
jordaahh 11:e5481bda1d6a 807 lcd.printString("Brightness",12,1);
jordaahh 11:e5481bda1d6a 808 wait(0.3);
jordaahh 11:e5481bda1d6a 809 while(1) {
jordaahh 11:e5481bda1d6a 810 if(button == 1) {
jordaahh 11:e5481bda1d6a 811 clearCells();
jordaahh 11:e5481bda1d6a 812 playGame();
jordaahh 11:e5481bda1d6a 813 break;
jordaahh 11:e5481bda1d6a 814 } else {
jordaahh 11:e5481bda1d6a 815 break;
jordaahh 11:e5481bda1d6a 816 }
jordaahh 11:e5481bda1d6a 817 }
jordaahh 11:e5481bda1d6a 818 break;
jordaahh 11:e5481bda1d6a 819 */
jordaahh 12:5ab932192a97 820
jordaahh 12:5ab932192a97 821
jordaahh 12:5ab932192a97 822
jordaahh 11:e5481bda1d6a 823 void writeDataToFile(int data)
jordaahh 11:e5481bda1d6a 824 {
jordaahh 12:5ab932192a97 825 FILE *fp = fopen("/local/score.txt", "a"); // open 'score.txt' for appending
jordaahh 12:5ab932192a97 826 // if the file doesn't exist it is created, if it exists, data is appended to the end
jordaahh 12:5ab932192a97 827 fprintf(fp,"%i\n",data); // print string to file
jordaahh 12:5ab932192a97 828 fclose(fp); // close file
jordaahh 11:e5481bda1d6a 829
jordaahh 11:e5481bda1d6a 830 }