jordan harper / Mbed 2 deprecated GameProject

Dependencies:   N5110 mbed

Committer:
jordaahh
Date:
Thu Apr 30 18:29:35 2015 +0000
Revision:
18:c93c501ed1c0
Parent:
17:f56dd50acf2d
Child:
19:baa140ab4490
writes but doesn't read

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 13:677d398423f7 13
jordaahh 1:3b741adc82ea 14
jordaahh 0:a28ad0db4228 15 // change this to alter tolerance of joystick direction
jordaahh 5:200fa178cb3a 16 #define DIRECTION_TOLERANCE 0.1
jordaahh 10:ffac6dc620ff 17
jordaahh 0:a28ad0db4228 18 // connections for joystick
jordaahh 11:e5481bda1d6a 19 DigitalIn button(p17);
jordaahh 11:e5481bda1d6a 20 AnalogIn xPot(p15);
jordaahh 11:e5481bda1d6a 21 AnalogIn yPot(p16);
jordaahh 1:3b741adc82ea 22
jordaahh 1:3b741adc82ea 23 // LCD connections
jordaahh 1:3b741adc82ea 24 //vcc, sce, rst, dc, mosi, clk, led
jordaahh 10:ffac6dc620ff 25 N5110 lcd(p7,p8,p9,p10,p11,p13,p26);
jordaahh 1:3b741adc82ea 26
jordaahh 2:98a51d3c2e44 27 // LCD dimentions
jordaahh 2:98a51d3c2e44 28 int nx= 84; //screen is 84 pixels across
jordaahh 2:98a51d3c2e44 29 int ny= 48; // by 48 pixels downwards
jordaahh 10:ffac6dc620ff 30
jordaahh 10:ffac6dc620ff 31 int x = 0; // wall starts from the coordinates (0,0)
jordaahh 10:ffac6dc620ff 32 int y = 0;
jordaahh 10:ffac6dc620ff 33 int z = 30;
jordaahh 10:ffac6dc620ff 34 int i=24; // initial coordinates for player object
jordaahh 5:200fa178cb3a 35 int j=42;
jordaahh 2:98a51d3c2e44 36
jordaahh 18:c93c501ed1c0 37 // initial value for score
jordaahh 18:c93c501ed1c0 38 int score = 0;
jordaahh 14:c00b7a943fb5 39
jordaahh 1:3b741adc82ea 40
jordaahh 0:a28ad0db4228 41 // timer to regularly read the joystick
jordaahh 0:a28ad0db4228 42 Ticker pollJoystick;
jordaahh 0:a28ad0db4228 43 // Serial for debug
jordaahh 0:a28ad0db4228 44 Serial serial(USBTX,USBRX);
jordaahh 10:ffac6dc620ff 45
jordaahh 0:a28ad0db4228 46 // create enumerated type (0,1,2,3 etc. for direction)
jordaahh 0:a28ad0db4228 47 // could be extended for diagonals etc.
jordaahh 0:a28ad0db4228 48 enum DirectionName {
jordaahh 0:a28ad0db4228 49 UP,
jordaahh 0:a28ad0db4228 50 DOWN,
jordaahh 0:a28ad0db4228 51 LEFT,
jordaahh 6:c257b2060803 52 upLeft,
jordaahh 6:c257b2060803 53 downLeft,
jordaahh 0:a28ad0db4228 54 RIGHT,
jordaahh 5:200fa178cb3a 55 upRight,
jordaahh 5:200fa178cb3a 56 downRight,
jordaahh 0:a28ad0db4228 57 CENTRE,
jordaahh 0:a28ad0db4228 58 UNKNOWN
jordaahh 0:a28ad0db4228 59 };
jordaahh 10:ffac6dc620ff 60
jordaahh 0:a28ad0db4228 61 // struct for Joystick
jordaahh 0:a28ad0db4228 62 typedef struct JoyStick Joystick;
jordaahh 0:a28ad0db4228 63 struct JoyStick {
jordaahh 0:a28ad0db4228 64 float x; // current x value
jordaahh 0:a28ad0db4228 65 float x0; // 'centred' x value
jordaahh 0:a28ad0db4228 66 float y; // current y value
jordaahh 0:a28ad0db4228 67 float y0; // 'centred' y value
jordaahh 0:a28ad0db4228 68 int button; // button state (assume pull-down used, so 1 = pressed, 0 = unpressed)
jordaahh 0:a28ad0db4228 69 DirectionName direction; // current direction
jordaahh 0:a28ad0db4228 70 };
jordaahh 0:a28ad0db4228 71 // create struct variable
jordaahh 0:a28ad0db4228 72 Joystick joystick;
jordaahh 10:ffac6dc620ff 73
jordaahh 0:a28ad0db4228 74 int printFlag = 0;
jordaahh 8:db2994eef1ab 75
jordaahh 8:db2994eef1ab 76 // timer function for moving walls
jordaahh 8:db2994eef1ab 77 Ticker wallMovement;
jordaahh 11:e5481bda1d6a 78 Ticker wallMovement2;
jordaahh 11:e5481bda1d6a 79 Ticker wallMovement3;
jordaahh 8:db2994eef1ab 80
jordaahh 8:db2994eef1ab 81
jordaahh 13:677d398423f7 82 int FLAG = 0; // initial value for flags that are used for wall movements
jordaahh 13:677d398423f7 83 int FLAG2 = 0;
jordaahh 13:677d398423f7 84 int FLAG3 = 0;
jordaahh 10:ffac6dc620ff 85
jordaahh 10:ffac6dc620ff 86 // timer function for menu scroll
jordaahh 10:ffac6dc620ff 87 Ticker menuMovement;
jordaahh 9:7c687ed420de 88
jordaahh 9:7c687ed420de 89 int menuFlag = 0; //initial value for flag that is used for menu scrolling
jordaahh 9:7c687ed420de 90
jordaahh 10:ffac6dc620ff 91 int c = 0; // initial value for position of option in menu
jordaahh 9:7c687ed420de 92
jordaahh 12:5ab932192a97 93
jordaahh 12:5ab932192a97 94 LocalFileSystem local("local"); // create local filesystem
jordaahh 12:5ab932192a97 95
jordaahh 11:e5481bda1d6a 96 // functions for TimeAndDate
jordaahh 11:e5481bda1d6a 97 void serialISR(); // ISR that is called when serial data is received
jordaahh 11:e5481bda1d6a 98 void setTime(); // function to set the UNIX time
jordaahh 11:e5481bda1d6a 99 int setTimeFlag = 0; // flag for ISR
jordaahh 11:e5481bda1d6a 100 char rxString[16]; // buffer to store received string
jordaahh 11:e5481bda1d6a 101
jordaahh 13:677d398423f7 102 // Output to Power LED
jordaahh 13:677d398423f7 103 PwmOut power(p24);
jordaahh 13:677d398423f7 104
jordaahh 13:677d398423f7 105 // Output to Buzzer
jordaahh 13:677d398423f7 106 PwmOut buz(p21);
jordaahh 13:677d398423f7 107
jordaahh 13:677d398423f7 108 // initial case for brightness function
jordaahh 13:677d398423f7 109 int bright = 0;
jordaahh 13:677d398423f7 110
jordaahh 14:c00b7a943fb5 111 // initial cas for volume function
jordaahh 13:677d398423f7 112 int vol = 0;
jordaahh 13:677d398423f7 113
jordaahh 14:c00b7a943fb5 114 // initial value for u (used in songs)
jordaahh 14:c00b7a943fb5 115 int u = 0;
jordaahh 14:c00b7a943fb5 116
jordaahh 14:c00b7a943fb5 117
jordaahh 14:c00b7a943fb5 118 //frequency array for song
jordaahh 16:6723fa6c0f25 119 float frequency[]= {880,880,0,0,440,880,0,0,440,880,600,1047,0,0,0,0,880,880,0,0,440,880,0,0,440,880,600,587,0,0,0,0,0};
jordaahh 18:c93c501ed1c0 120 float frequency2[]= {600,600,400,400,200};
jordaahh 14:c00b7a943fb5 121
jordaahh 14:c00b7a943fb5 122
jordaahh 0:a28ad0db4228 123 // function prototypes
jordaahh 0:a28ad0db4228 124 void calibrateJoystick();
jordaahh 0:a28ad0db4228 125 void updateJoystick();
jordaahh 3:11cbc2945fd7 126 void clearCells();
jordaahh 10:ffac6dc620ff 127 void fallingWall();
jordaahh 8:db2994eef1ab 128 void flagForWall();
jordaahh 11:e5481bda1d6a 129 void flagForWall2();
jordaahh 11:e5481bda1d6a 130 void flagForWall3();
jordaahh 10:ffac6dc620ff 131 void menu();
jordaahh 10:ffac6dc620ff 132 void playGame();
jordaahh 11:e5481bda1d6a 133 void TimeAndDate();
jordaahh 18:c93c501ed1c0 134 void writeDataToFile();
jordaahh 13:677d398423f7 135 void BandVMenu();
jordaahh 13:677d398423f7 136 void brightness();
jordaahh 13:677d398423f7 137 void volume();
jordaahh 14:c00b7a943fb5 138 void tone();
jordaahh 14:c00b7a943fb5 139 void deadTone();
jordaahh 18:c93c501ed1c0 140 void readDataFromFile();
jordaahh 10:ffac6dc620ff 141
jordaahh 10:ffac6dc620ff 142 int main()
jordaahh 0:a28ad0db4228 143 {
jordaahh 14:c00b7a943fb5 144 // set_time(0); // enter unix time then delete from main function to set time
jordaahh 13:677d398423f7 145 power = 1;
jordaahh 1:3b741adc82ea 146 lcd.init();
jordaahh 0:a28ad0db4228 147 calibrateJoystick(); // get centred values of joystick
jordaahh 11:e5481bda1d6a 148 pollJoystick.attach(&updateJoystick,1.0/15.0); // read joystick 10 times per second
jordaahh 11:e5481bda1d6a 149 wallMovement.attach(&flagForWall,0.2); // call function flagForWall to make flag=1, every 0.1 seconds
jordaahh 11:e5481bda1d6a 150 wallMovement2.attach(&flagForWall2,0.2); // call function flagForWall2 to make flag=1, every 0.1 seconds
jordaahh 11:e5481bda1d6a 151 wallMovement3.attach(&flagForWall3,0.2); // call function flagForWall3 to make flag=1, every 0.1 seconds
jordaahh 10:ffac6dc620ff 152 menu();
jordaahh 7:b27a91c673dc 153
jordaahh 0:a28ad0db4228 154 }
jordaahh 5:200fa178cb3a 155
jordaahh 14:c00b7a943fb5 156
jordaahh 0:a28ad0db4228 157 // read default positions of the joystick to calibrate later readings
jordaahh 0:a28ad0db4228 158 void calibrateJoystick()
jordaahh 0:a28ad0db4228 159 {
jordaahh 0:a28ad0db4228 160 button.mode(PullDown);
jordaahh 0:a28ad0db4228 161 // must not move during calibration
jordaahh 0:a28ad0db4228 162 joystick.x0 = xPot; // initial positions in the range 0.0 to 1.0 (0.5 if centred exactly)
jordaahh 0:a28ad0db4228 163 joystick.y0 = yPot;
jordaahh 0:a28ad0db4228 164 }
jordaahh 0:a28ad0db4228 165 void updateJoystick()
jordaahh 0:a28ad0db4228 166 {
jordaahh 0:a28ad0db4228 167 // read current joystick values relative to calibrated values (in range -0.5 to 0.5, 0.0 is centred)
jordaahh 0:a28ad0db4228 168 joystick.x = xPot - joystick.x0;
jordaahh 0:a28ad0db4228 169 joystick.y = yPot - joystick.y0;
jordaahh 0:a28ad0db4228 170 // read button state
jordaahh 0:a28ad0db4228 171 joystick.button = button;
jordaahh 10:ffac6dc620ff 172
jordaahh 0:a28ad0db4228 173 // calculate direction depending on x,y values
jordaahh 0:a28ad0db4228 174 // tolerance allows a little lee-way in case joystick not exactly in the stated direction
jordaahh 0:a28ad0db4228 175 if ( fabs(joystick.y) < DIRECTION_TOLERANCE && fabs(joystick.x) < DIRECTION_TOLERANCE) {
jordaahh 0:a28ad0db4228 176 joystick.direction = CENTRE;
jordaahh 0:a28ad0db4228 177 } else if ( joystick.y > DIRECTION_TOLERANCE && fabs(joystick.x) < DIRECTION_TOLERANCE) {
jordaahh 0:a28ad0db4228 178 joystick.direction = UP;
jordaahh 0:a28ad0db4228 179 } else if ( joystick.y < DIRECTION_TOLERANCE && fabs(joystick.x) < DIRECTION_TOLERANCE) {
jordaahh 0:a28ad0db4228 180 joystick.direction = DOWN;
jordaahh 0:a28ad0db4228 181 } else if ( joystick.x > DIRECTION_TOLERANCE && fabs(joystick.y) < DIRECTION_TOLERANCE) {
jordaahh 0:a28ad0db4228 182 joystick.direction = RIGHT;
jordaahh 0:a28ad0db4228 183 } else if ( joystick.x < DIRECTION_TOLERANCE && fabs(joystick.y) < DIRECTION_TOLERANCE) {
jordaahh 0:a28ad0db4228 184 joystick.direction = LEFT;
jordaahh 10:ffac6dc620ff 185 } else if ( joystick.y > DIRECTION_TOLERANCE && joystick.x > DIRECTION_TOLERANCE) {
jordaahh 6:c257b2060803 186 joystick.direction = upRight;
jordaahh 10:ffac6dc620ff 187 } else if ( joystick.y < DIRECTION_TOLERANCE && joystick.x > DIRECTION_TOLERANCE) {
jordaahh 6:c257b2060803 188 joystick.direction = downRight;
jordaahh 10:ffac6dc620ff 189 } else if ( joystick.y > DIRECTION_TOLERANCE && joystick.x < DIRECTION_TOLERANCE) {
jordaahh 6:c257b2060803 190 joystick.direction = upLeft;
jordaahh 10:ffac6dc620ff 191 } else if ( joystick.y < DIRECTION_TOLERANCE && joystick.x < DIRECTION_TOLERANCE) {
jordaahh 6:c257b2060803 192 joystick.direction = downLeft;
jordaahh 10:ffac6dc620ff 193 }
jordaahh 0:a28ad0db4228 194 // set flag for printing
jordaahh 0:a28ad0db4228 195 printFlag = 1;
jordaahh 3:11cbc2945fd7 196 }
jordaahh 3:11cbc2945fd7 197
jordaahh 5:200fa178cb3a 198
jordaahh 3:11cbc2945fd7 199 void clearCells() // turns all cells on the display off
jordaahh 3:11cbc2945fd7 200 {
jordaahh 3:11cbc2945fd7 201 // loop through cells, and clear
jordaahh 3:11cbc2945fd7 202 for (int i = 0; i < nx ; i++) {
jordaahh 3:11cbc2945fd7 203 for (int j = 0; j < ny ; j++) {
jordaahh 3:11cbc2945fd7 204 lcd.clearPixel(i,j);
jordaahh 3:11cbc2945fd7 205 }
jordaahh 3:11cbc2945fd7 206 }
jordaahh 3:11cbc2945fd7 207 lcd.refresh(); // must refresh to write buffer display
jordaahh 3:11cbc2945fd7 208 }
jordaahh 3:11cbc2945fd7 209
jordaahh 10:ffac6dc620ff 210 void flagForWall() // flag function for wmoving wall to call later
jordaahh 8:db2994eef1ab 211 {
jordaahh 8:db2994eef1ab 212 FLAG=1;
jordaahh 8:db2994eef1ab 213 }
jordaahh 8:db2994eef1ab 214
jordaahh 11:e5481bda1d6a 215 void flagForWall2() // flag function for wmoving wall to call later
jordaahh 11:e5481bda1d6a 216 {
jordaahh 11:e5481bda1d6a 217 FLAG2=1;
jordaahh 11:e5481bda1d6a 218 }
jordaahh 11:e5481bda1d6a 219
jordaahh 12:5ab932192a97 220 void flagForWall3() // flag function for moving wall to call later
jordaahh 11:e5481bda1d6a 221 {
jordaahh 11:e5481bda1d6a 222 FLAG3=1;
jordaahh 11:e5481bda1d6a 223 }
jordaahh 9:7c687ed420de 224
jordaahh 10:ffac6dc620ff 225 void menu ()
jordaahh 9:7c687ed420de 226 {
jordaahh 10:ffac6dc620ff 227 int m = 0;
jordaahh 16:6723fa6c0f25 228
jordaahh 11:e5481bda1d6a 229 char buffer[14]; // buffer used to store time string
jordaahh 11:e5481bda1d6a 230 char buffer2[14]; // buffer used to store time string
jordaahh 13:677d398423f7 231
jordaahh 10:ffac6dc620ff 232 while(1) {
jordaahh 10:ffac6dc620ff 233 clearCells();
jordaahh 11:e5481bda1d6a 234 time_t seconds = time(NULL); // get current time
jordaahh 11:e5481bda1d6a 235 // format time into a string (time and date)
jordaahh 11:e5481bda1d6a 236 strftime(buffer, 14 , "%H:%M", localtime(&seconds));
jordaahh 11:e5481bda1d6a 237 strftime(buffer2, 14, "%d/%m", localtime(&seconds));
jordaahh 11:e5481bda1d6a 238
jordaahh 11:e5481bda1d6a 239 lcd.printString(buffer,26,4); // show time on lcd screen
jordaahh 11:e5481bda1d6a 240
jordaahh 11:e5481bda1d6a 241
jordaahh 10:ffac6dc620ff 242 if ((joystick.direction == RIGHT)||(joystick.direction == upRight)||(joystick.direction == downRight)) {
jordaahh 10:ffac6dc620ff 243 m++;
jordaahh 9:7c687ed420de 244 }
jordaahh 10:ffac6dc620ff 245 if ((joystick.direction == LEFT)||(joystick.direction == upLeft)||(joystick.direction == downLeft)) {
jordaahh 10:ffac6dc620ff 246 m--;
jordaahh 9:7c687ed420de 247 }
jordaahh 10:ffac6dc620ff 248 if(m > 2) {
jordaahh 10:ffac6dc620ff 249 m = 0;
jordaahh 10:ffac6dc620ff 250 }
jordaahh 10:ffac6dc620ff 251 if(m < 0) {
jordaahh 10:ffac6dc620ff 252 m = 2;
jordaahh 9:7c687ed420de 253 }
jordaahh 10:ffac6dc620ff 254 switch (m) {
jordaahh 10:ffac6dc620ff 255 case 0 :
jordaahh 10:ffac6dc620ff 256 lcd.printString("< Play Game >",0,2);
jordaahh 10:ffac6dc620ff 257 wait(0.3);
jordaahh 10:ffac6dc620ff 258 while(1) {
jordaahh 10:ffac6dc620ff 259 if(button == 1) {
jordaahh 10:ffac6dc620ff 260 clearCells();
jordaahh 10:ffac6dc620ff 261 playGame();
jordaahh 10:ffac6dc620ff 262 break;
jordaahh 10:ffac6dc620ff 263 } else {
jordaahh 10:ffac6dc620ff 264 break;
jordaahh 10:ffac6dc620ff 265 }
jordaahh 10:ffac6dc620ff 266 }
jordaahh 10:ffac6dc620ff 267 break;
jordaahh 10:ffac6dc620ff 268 case 1 :
jordaahh 10:ffac6dc620ff 269 lcd.printString("< Settings >",0,2);
jordaahh 10:ffac6dc620ff 270 wait(0.3);
jordaahh 10:ffac6dc620ff 271 while(1) {
jordaahh 10:ffac6dc620ff 272 if(button == 1) {
jordaahh 10:ffac6dc620ff 273 clearCells();
jordaahh 13:677d398423f7 274 BandVMenu();
jordaahh 10:ffac6dc620ff 275 break;
jordaahh 10:ffac6dc620ff 276 } else {
jordaahh 10:ffac6dc620ff 277 break;
jordaahh 10:ffac6dc620ff 278 }
jordaahh 10:ffac6dc620ff 279 }
jordaahh 10:ffac6dc620ff 280 break;
jordaahh 10:ffac6dc620ff 281 case 2 :
jordaahh 10:ffac6dc620ff 282 lcd.printString("< HighScores >",0,2);
jordaahh 10:ffac6dc620ff 283 wait(0.3);
jordaahh 10:ffac6dc620ff 284 while(1) {
jordaahh 10:ffac6dc620ff 285 if(button == 1) {
jordaahh 10:ffac6dc620ff 286 clearCells();
jordaahh 10:ffac6dc620ff 287 lcd.printString("scoring",0,2); //enter function to commence here
jordaahh 10:ffac6dc620ff 288 wait(3.0);
jordaahh 10:ffac6dc620ff 289 break;
jordaahh 10:ffac6dc620ff 290 } else {
jordaahh 10:ffac6dc620ff 291 break;
jordaahh 10:ffac6dc620ff 292 }
jordaahh 10:ffac6dc620ff 293 }
jordaahh 10:ffac6dc620ff 294 break;
jordaahh 10:ffac6dc620ff 295
jordaahh 9:7c687ed420de 296 }
jordaahh 10:ffac6dc620ff 297 }
jordaahh 9:7c687ed420de 298 }
jordaahh 9:7c687ed420de 299
jordaahh 11:e5481bda1d6a 300
jordaahh 10:ffac6dc620ff 301 void playGame()
jordaahh 9:7c687ed420de 302 {
jordaahh 10:ffac6dc620ff 303 int i=24; // initial coordinates for player object
jordaahh 10:ffac6dc620ff 304 int j=42;
jordaahh 10:ffac6dc620ff 305 int x = 0; // wall starts from the coordinates (0,0)
jordaahh 10:ffac6dc620ff 306 int y = 0;
jordaahh 10:ffac6dc620ff 307 int z = 30;
jordaahh 11:e5481bda1d6a 308 int a = 0;
jordaahh 11:e5481bda1d6a 309 int b = 47;
jordaahh 11:e5481bda1d6a 310 int d = 30;
jordaahh 11:e5481bda1d6a 311 int f = 0;
jordaahh 11:e5481bda1d6a 312 int g = 0;
jordaahh 11:e5481bda1d6a 313 int h = 24;
jordaahh 11:e5481bda1d6a 314 int q = 83;
jordaahh 11:e5481bda1d6a 315 int w = 0;
jordaahh 11:e5481bda1d6a 316 int e = 24;
jordaahh 18:c93c501ed1c0 317 score = 0;
jordaahh 11:e5481bda1d6a 318
jordaahh 10:ffac6dc620ff 319 lcd.printString("GO!",35,2);
jordaahh 10:ffac6dc620ff 320 wait(1);
jordaahh 10:ffac6dc620ff 321 while(1) {
jordaahh 14:c00b7a943fb5 322 tone();
jordaahh 10:ffac6dc620ff 323 lcd.drawRect(i,j,2,2,0);
jordaahh 9:7c687ed420de 324 clearCells();
jordaahh 10:ffac6dc620ff 325 lcd.drawLine(x,y,z,y,1); // draws a line at the top of the screen to symbolise a wall
jordaahh 10:ffac6dc620ff 326 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 327 if(FLAG==1) {
jordaahh 10:ffac6dc620ff 328 FLAG=0;
jordaahh 10:ffac6dc620ff 329 y++; // everytime the flag changes to one it is reset and the wall moves down by one pixel
jordaahh 10:ffac6dc620ff 330 }
jordaahh 10:ffac6dc620ff 331 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 332 y = 0;
jordaahh 10:ffac6dc620ff 333 z = rand()%74;
jordaahh 11:e5481bda1d6a 334 score++;
jordaahh 11:e5481bda1d6a 335 }
jordaahh 11:e5481bda1d6a 336 if(( score > 1)&&(score < 5)) {
jordaahh 11:e5481bda1d6a 337 lcd.drawLine(a,b,d,b,1); // draws a line at the top of the screen to symbolise a wall
jordaahh 11:e5481bda1d6a 338 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 339 if(FLAG3==1) {
jordaahh 11:e5481bda1d6a 340 FLAG3=0;
jordaahh 11:e5481bda1d6a 341 b--; // everytime the flag changes to one it is reset and the wall moves down by one pixel
jordaahh 11:e5481bda1d6a 342 }
jordaahh 11:e5481bda1d6a 343 }
jordaahh 11:e5481bda1d6a 344 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 345 b = 47;
jordaahh 11:e5481bda1d6a 346 d = rand()%74;
jordaahh 11:e5481bda1d6a 347 }
jordaahh 11:e5481bda1d6a 348 if(( score > 5)&&(score < 9)) {
jordaahh 11:e5481bda1d6a 349 lcd.drawLine(f,g,f,h,1);
jordaahh 11:e5481bda1d6a 350 lcd.drawLine(f,h+10,f,47,1);
jordaahh 11:e5481bda1d6a 351 if(FLAG2==1) {
jordaahh 11:e5481bda1d6a 352 FLAG2=0;
jordaahh 11:e5481bda1d6a 353 f++; // everytime the flag changes to one it is reset and the wall moves down by one pixel
jordaahh 11:e5481bda1d6a 354 }
jordaahh 11:e5481bda1d6a 355 }
jordaahh 11:e5481bda1d6a 356 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 357 f = 0;
jordaahh 11:e5481bda1d6a 358 h = rand()%38;
jordaahh 11:e5481bda1d6a 359 }
jordaahh 11:e5481bda1d6a 360 if(( score > 10)&&(score < 15)) {
jordaahh 11:e5481bda1d6a 361 lcd.drawLine(q,w,q,e,1); // draws a line at the top of the screen to symbolise a wall
jordaahh 11:e5481bda1d6a 362 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 363 if(FLAG3==1) {
jordaahh 11:e5481bda1d6a 364 FLAG3=0;
jordaahh 11:e5481bda1d6a 365 q--; // everytime the flag changes to one it is reset and the wall moves down by one pixel
jordaahh 11:e5481bda1d6a 366 }
jordaahh 11:e5481bda1d6a 367 }
jordaahh 11:e5481bda1d6a 368 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 369 q = 83;
jordaahh 11:e5481bda1d6a 370 e = rand()%38;
jordaahh 11:e5481bda1d6a 371 }
jordaahh 11:e5481bda1d6a 372 if( score > 15) {
jordaahh 11:e5481bda1d6a 373 lcd.drawLine(q,w,q,e,1); // draws a line at the top of the screen to symbolise a wall
jordaahh 11:e5481bda1d6a 374 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 375 if(FLAG3==1) {
jordaahh 11:e5481bda1d6a 376 FLAG3=0;
jordaahh 11:e5481bda1d6a 377 q--; // everytime the flag changes to one it is reset and the wall moves down by one pixel
jordaahh 11:e5481bda1d6a 378 }
jordaahh 11:e5481bda1d6a 379 }
jordaahh 11:e5481bda1d6a 380 if( score > 20) {
jordaahh 11:e5481bda1d6a 381 lcd.drawLine(a,b,d,b,1); // draws a line at the top of the screen to symbolise a wall
jordaahh 11:e5481bda1d6a 382 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 383 if(FLAG2==1) {
jordaahh 11:e5481bda1d6a 384 FLAG2=0;
jordaahh 11:e5481bda1d6a 385 b--; // everytime the flag changes to one it is reset and the wall moves down by one pixel
jordaahh 11:e5481bda1d6a 386 }
jordaahh 10:ffac6dc620ff 387 }
jordaahh 10:ffac6dc620ff 388
jordaahh 10:ffac6dc620ff 389 if( j > 45) { // rules to prevent player object going off the screen
jordaahh 10:ffac6dc620ff 390 j = 45;
jordaahh 10:ffac6dc620ff 391 }
jordaahh 10:ffac6dc620ff 392 if( i > 81) {
jordaahh 10:ffac6dc620ff 393 i = 81;
jordaahh 10:ffac6dc620ff 394 }
jordaahh 10:ffac6dc620ff 395 if( j < 0) {
jordaahh 10:ffac6dc620ff 396 j = 0;
jordaahh 10:ffac6dc620ff 397 }
jordaahh 10:ffac6dc620ff 398 if( i < 0) {
jordaahh 10:ffac6dc620ff 399 i = 0;
jordaahh 10:ffac6dc620ff 400 }
jordaahh 10:ffac6dc620ff 401
jordaahh 10:ffac6dc620ff 402 if (printFlag) { // if flag set, clear flag and implicate joystick functions
jordaahh 10:ffac6dc620ff 403 printFlag = 0;
jordaahh 10:ffac6dc620ff 404
jordaahh 10:ffac6dc620ff 405
jordaahh 10:ffac6dc620ff 406 // check joystick direction
jordaahh 10:ffac6dc620ff 407 if (joystick.direction == UP) {
jordaahh 10:ffac6dc620ff 408 j--;
jordaahh 10:ffac6dc620ff 409 }
jordaahh 10:ffac6dc620ff 410 if (joystick.direction == DOWN) {
jordaahh 10:ffac6dc620ff 411 j++;
jordaahh 10:ffac6dc620ff 412 }
jordaahh 10:ffac6dc620ff 413 if (joystick.direction == LEFT) {
jordaahh 11:e5481bda1d6a 414 i++;
jordaahh 10:ffac6dc620ff 415 }
jordaahh 10:ffac6dc620ff 416 if (joystick.direction == RIGHT) {
jordaahh 11:e5481bda1d6a 417 i--;
jordaahh 10:ffac6dc620ff 418 }
jordaahh 10:ffac6dc620ff 419 if (joystick.direction == upRight) {
jordaahh 10:ffac6dc620ff 420 j--;
jordaahh 11:e5481bda1d6a 421 i--;
jordaahh 11:e5481bda1d6a 422 }
jordaahh 11:e5481bda1d6a 423 if (joystick.direction == downRight) {
jordaahh 11:e5481bda1d6a 424 j++;
jordaahh 11:e5481bda1d6a 425 i--;
jordaahh 11:e5481bda1d6a 426 }
jordaahh 11:e5481bda1d6a 427 if (joystick.direction == upLeft) {
jordaahh 11:e5481bda1d6a 428 j--;
jordaahh 10:ffac6dc620ff 429 i++;
jordaahh 10:ffac6dc620ff 430 }
jordaahh 11:e5481bda1d6a 431 if (joystick.direction == downLeft) {
jordaahh 10:ffac6dc620ff 432 j++;
jordaahh 10:ffac6dc620ff 433 i++;
jordaahh 10:ffac6dc620ff 434 }
jordaahh 10:ffac6dc620ff 435 if (joystick.direction == CENTRE) {
jordaahh 10:ffac6dc620ff 436 i=i;
jordaahh 10:ffac6dc620ff 437 j=j;
jordaahh 10:ffac6dc620ff 438 }
jordaahh 10:ffac6dc620ff 439 if (lcd.getPixel(i,j-1)) {
jordaahh 18:c93c501ed1c0 440 readDataFromFile();
jordaahh 18:c93c501ed1c0 441 writeDataToFile(); // write current value to disk
jordaahh 18:c93c501ed1c0 442
jordaahh 10:ffac6dc620ff 443 clearCells();
jordaahh 10:ffac6dc620ff 444 int m = 1;
jordaahh 10:ffac6dc620ff 445 lcd.printString("game over",1,2);
jordaahh 14:c00b7a943fb5 446 deadTone();
jordaahh 9:7c687ed420de 447 clearCells();
jordaahh 10:ffac6dc620ff 448 lcd.printString("Play again?",0,0);
jordaahh 10:ffac6dc620ff 449 lcd.printString("Yes No",0,3);
jordaahh 10:ffac6dc620ff 450
jordaahh 10:ffac6dc620ff 451 while(1) {
jordaahh 10:ffac6dc620ff 452 clearCells();
jordaahh 10:ffac6dc620ff 453 if ((joystick.direction == RIGHT)||(joystick.direction == upRight)||(joystick.direction == downRight)) {
jordaahh 11:e5481bda1d6a 454 m--;
jordaahh 10:ffac6dc620ff 455 }
jordaahh 10:ffac6dc620ff 456 if ((joystick.direction == LEFT)||(joystick.direction == upLeft)||(joystick.direction == downLeft)) {
jordaahh 11:e5481bda1d6a 457 m++;
jordaahh 10:ffac6dc620ff 458 }
jordaahh 10:ffac6dc620ff 459 if(m > 2) {
jordaahh 10:ffac6dc620ff 460 m = 2;
jordaahh 10:ffac6dc620ff 461 }
jordaahh 10:ffac6dc620ff 462 if(m < 0) {
jordaahh 10:ffac6dc620ff 463 m = 0;
jordaahh 10:ffac6dc620ff 464 }
jordaahh 10:ffac6dc620ff 465 switch (m) {
jordaahh 10:ffac6dc620ff 466 case 0 :
jordaahh 10:ffac6dc620ff 467 lcd.printString("YES",0,3);
jordaahh 15:cf59cdffe546 468
jordaahh 10:ffac6dc620ff 469 while(1) {
jordaahh 10:ffac6dc620ff 470 if(button == 1) {
jordaahh 10:ffac6dc620ff 471 clearCells();
jordaahh 10:ffac6dc620ff 472 playGame();
jordaahh 10:ffac6dc620ff 473 break;
jordaahh 10:ffac6dc620ff 474 } else {
jordaahh 10:ffac6dc620ff 475 break;
jordaahh 10:ffac6dc620ff 476 }
jordaahh 10:ffac6dc620ff 477 }
jordaahh 10:ffac6dc620ff 478 break;
jordaahh 10:ffac6dc620ff 479 case 1 :
jordaahh 10:ffac6dc620ff 480 lcd.printString("Play again?",0,0);
jordaahh 10:ffac6dc620ff 481 lcd.printString("Yes No",0,3);
jordaahh 15:cf59cdffe546 482
jordaahh 10:ffac6dc620ff 483 break;
jordaahh 10:ffac6dc620ff 484 case 2 :
jordaahh 10:ffac6dc620ff 485 lcd.printString("NO",70,3);
jordaahh 15:cf59cdffe546 486
jordaahh 10:ffac6dc620ff 487 while(1) {
jordaahh 10:ffac6dc620ff 488 if(button == 1) {
jordaahh 10:ffac6dc620ff 489 clearCells();
jordaahh 10:ffac6dc620ff 490 lcd.printString("Leaving Game",0,2); //enter function to commence here
jordaahh 14:c00b7a943fb5 491 wait(1.0);
jordaahh 10:ffac6dc620ff 492 menu();
jordaahh 10:ffac6dc620ff 493 break;
jordaahh 10:ffac6dc620ff 494 } else {
jordaahh 10:ffac6dc620ff 495 break;
jordaahh 10:ffac6dc620ff 496 }
jordaahh 10:ffac6dc620ff 497 }
jordaahh 10:ffac6dc620ff 498 break;
jordaahh 10:ffac6dc620ff 499
jordaahh 10:ffac6dc620ff 500 }
jordaahh 9:7c687ed420de 501 }
jordaahh 10:ffac6dc620ff 502 }
jordaahh 10:ffac6dc620ff 503 if (lcd.getPixel(i+1,j-1)) {
jordaahh 18:c93c501ed1c0 504 readDataFromFile();
jordaahh 18:c93c501ed1c0 505 writeDataToFile(); // write current value to disk
jordaahh 18:c93c501ed1c0 506
jordaahh 10:ffac6dc620ff 507 clearCells();
jordaahh 10:ffac6dc620ff 508 int m = 1;
jordaahh 10:ffac6dc620ff 509 lcd.printString("game over",1,2);
jordaahh 14:c00b7a943fb5 510 deadTone();
jordaahh 9:7c687ed420de 511 clearCells();
jordaahh 10:ffac6dc620ff 512 lcd.printString("Play again?",0,0);
jordaahh 10:ffac6dc620ff 513 lcd.printString("Yes No",0,3);
jordaahh 10:ffac6dc620ff 514
jordaahh 10:ffac6dc620ff 515 while(1) {
jordaahh 10:ffac6dc620ff 516 clearCells();
jordaahh 10:ffac6dc620ff 517 if ((joystick.direction == RIGHT)||(joystick.direction == upRight)||(joystick.direction == downRight)) {
jordaahh 11:e5481bda1d6a 518 m--;
jordaahh 10:ffac6dc620ff 519 }
jordaahh 10:ffac6dc620ff 520 if ((joystick.direction == LEFT)||(joystick.direction == upLeft)||(joystick.direction == downLeft)) {
jordaahh 11:e5481bda1d6a 521 m++;
jordaahh 10:ffac6dc620ff 522 }
jordaahh 10:ffac6dc620ff 523 if(m > 2) {
jordaahh 10:ffac6dc620ff 524 m = 2;
jordaahh 10:ffac6dc620ff 525 }
jordaahh 10:ffac6dc620ff 526 if(m < 0) {
jordaahh 10:ffac6dc620ff 527 m = 0;
jordaahh 10:ffac6dc620ff 528 }
jordaahh 10:ffac6dc620ff 529 switch (m) {
jordaahh 10:ffac6dc620ff 530 case 0 :
jordaahh 10:ffac6dc620ff 531 lcd.printString("YES",0,3);
jordaahh 15:cf59cdffe546 532
jordaahh 10:ffac6dc620ff 533 while(1) {
jordaahh 10:ffac6dc620ff 534 if(button == 1) {
jordaahh 10:ffac6dc620ff 535 clearCells();
jordaahh 10:ffac6dc620ff 536 playGame();
jordaahh 10:ffac6dc620ff 537 break;
jordaahh 10:ffac6dc620ff 538 } else {
jordaahh 10:ffac6dc620ff 539 break;
jordaahh 10:ffac6dc620ff 540 }
jordaahh 10:ffac6dc620ff 541 }
jordaahh 10:ffac6dc620ff 542 break;
jordaahh 10:ffac6dc620ff 543 case 1 :
jordaahh 10:ffac6dc620ff 544 lcd.printString("Play again?",0,0);
jordaahh 10:ffac6dc620ff 545 lcd.printString("Yes No",0,3);
jordaahh 15:cf59cdffe546 546
jordaahh 10:ffac6dc620ff 547 break;
jordaahh 10:ffac6dc620ff 548 case 2 :
jordaahh 10:ffac6dc620ff 549 lcd.printString("NO",70,3);
jordaahh 15:cf59cdffe546 550
jordaahh 10:ffac6dc620ff 551 while(1) {
jordaahh 10:ffac6dc620ff 552 if(button == 1) {
jordaahh 10:ffac6dc620ff 553 clearCells();
jordaahh 10:ffac6dc620ff 554 lcd.printString("Leaving Game",0,2); //enter function to commence here
jordaahh 14:c00b7a943fb5 555 wait(1.0);
jordaahh 10:ffac6dc620ff 556 menu();
jordaahh 10:ffac6dc620ff 557 break;
jordaahh 10:ffac6dc620ff 558 } else {
jordaahh 10:ffac6dc620ff 559 break;
jordaahh 10:ffac6dc620ff 560 }
jordaahh 10:ffac6dc620ff 561 }
jordaahh 10:ffac6dc620ff 562 break;
jordaahh 10:ffac6dc620ff 563 }
jordaahh 9:7c687ed420de 564 }
jordaahh 10:ffac6dc620ff 565 }
jordaahh 10:ffac6dc620ff 566 if (lcd.getPixel(i+2,j-1)) {
jordaahh 18:c93c501ed1c0 567 readDataFromFile();
jordaahh 18:c93c501ed1c0 568 writeDataToFile(); // write current value to disk
jordaahh 18:c93c501ed1c0 569
jordaahh 10:ffac6dc620ff 570 clearCells();
jordaahh 10:ffac6dc620ff 571 int m = 1;
jordaahh 10:ffac6dc620ff 572 lcd.printString("game over",1,2);
jordaahh 14:c00b7a943fb5 573 deadTone();
jordaahh 10:ffac6dc620ff 574 clearCells();
jordaahh 10:ffac6dc620ff 575 lcd.printString("Play again?",0,0);
jordaahh 10:ffac6dc620ff 576 lcd.printString("Yes No",0,3);
jordaahh 10:ffac6dc620ff 577
jordaahh 10:ffac6dc620ff 578 while(1) {
jordaahh 10:ffac6dc620ff 579 clearCells();
jordaahh 10:ffac6dc620ff 580 if ((joystick.direction == RIGHT)||(joystick.direction == upRight)||(joystick.direction == downRight)) {
jordaahh 11:e5481bda1d6a 581 m--;
jordaahh 10:ffac6dc620ff 582 }
jordaahh 10:ffac6dc620ff 583 if ((joystick.direction == LEFT)||(joystick.direction == upLeft)||(joystick.direction == downLeft)) {
jordaahh 11:e5481bda1d6a 584 m++;
jordaahh 10:ffac6dc620ff 585 }
jordaahh 10:ffac6dc620ff 586 if(m > 2) {
jordaahh 10:ffac6dc620ff 587 m = 2;
jordaahh 10:ffac6dc620ff 588 }
jordaahh 10:ffac6dc620ff 589 if(m < 0) {
jordaahh 10:ffac6dc620ff 590 m = 0;
jordaahh 10:ffac6dc620ff 591 }
jordaahh 10:ffac6dc620ff 592 switch (m) {
jordaahh 10:ffac6dc620ff 593 case 0 :
jordaahh 10:ffac6dc620ff 594 lcd.printString("YES",0,3);
jordaahh 10:ffac6dc620ff 595 while(1) {
jordaahh 10:ffac6dc620ff 596 if(button == 1) {
jordaahh 10:ffac6dc620ff 597 clearCells();
jordaahh 10:ffac6dc620ff 598 playGame();
jordaahh 10:ffac6dc620ff 599 break;
jordaahh 10:ffac6dc620ff 600 } else {
jordaahh 10:ffac6dc620ff 601 break;
jordaahh 10:ffac6dc620ff 602 }
jordaahh 10:ffac6dc620ff 603 }
jordaahh 10:ffac6dc620ff 604 break;
jordaahh 10:ffac6dc620ff 605 case 1 :
jordaahh 10:ffac6dc620ff 606 lcd.printString("Play again?",0,0);
jordaahh 10:ffac6dc620ff 607 lcd.printString("Yes No",0,3);
jordaahh 10:ffac6dc620ff 608 break;
jordaahh 10:ffac6dc620ff 609 case 2 :
jordaahh 10:ffac6dc620ff 610 lcd.printString("NO",70,3);
jordaahh 10:ffac6dc620ff 611 while(1) {
jordaahh 10:ffac6dc620ff 612 if(button == 1) {
jordaahh 10:ffac6dc620ff 613 clearCells();
jordaahh 10:ffac6dc620ff 614 lcd.printString("Leaving Game",0,2); //enter function to commence here
jordaahh 14:c00b7a943fb5 615 wait(1.0);
jordaahh 10:ffac6dc620ff 616 menu();
jordaahh 10:ffac6dc620ff 617 break;
jordaahh 10:ffac6dc620ff 618 } else {
jordaahh 10:ffac6dc620ff 619 break;
jordaahh 10:ffac6dc620ff 620 }
jordaahh 10:ffac6dc620ff 621 }
jordaahh 10:ffac6dc620ff 622 break;
jordaahh 10:ffac6dc620ff 623
jordaahh 10:ffac6dc620ff 624 }
jordaahh 9:7c687ed420de 625 }
jordaahh 9:7c687ed420de 626 }
jordaahh 11:e5481bda1d6a 627 if (lcd.getPixel(i,j)) {
jordaahh 18:c93c501ed1c0 628 readDataFromFile();
jordaahh 18:c93c501ed1c0 629 writeDataToFile(); // write current value to disk
jordaahh 18:c93c501ed1c0 630
jordaahh 11:e5481bda1d6a 631 clearCells();
jordaahh 11:e5481bda1d6a 632 int m = 1;
jordaahh 11:e5481bda1d6a 633 lcd.printString("game over",1,2);
jordaahh 14:c00b7a943fb5 634 deadTone();
jordaahh 11:e5481bda1d6a 635 clearCells();
jordaahh 11:e5481bda1d6a 636 lcd.printString("Play again?",0,0);
jordaahh 11:e5481bda1d6a 637 lcd.printString("Yes No",0,3);
jordaahh 13:677d398423f7 638
jordaahh 9:7c687ed420de 639
jordaahh 11:e5481bda1d6a 640 while(1) {
jordaahh 11:e5481bda1d6a 641 clearCells();
jordaahh 11:e5481bda1d6a 642 if ((joystick.direction == RIGHT)||(joystick.direction == upRight)||(joystick.direction == downRight)) {
jordaahh 11:e5481bda1d6a 643 m--;
jordaahh 11:e5481bda1d6a 644 }
jordaahh 11:e5481bda1d6a 645 if ((joystick.direction == LEFT)||(joystick.direction == upLeft)||(joystick.direction == downLeft)) {
jordaahh 11:e5481bda1d6a 646 m++;
jordaahh 11:e5481bda1d6a 647 }
jordaahh 11:e5481bda1d6a 648 if(m > 2) {
jordaahh 11:e5481bda1d6a 649 m = 2;
jordaahh 11:e5481bda1d6a 650 }
jordaahh 11:e5481bda1d6a 651 if(m < 0) {
jordaahh 11:e5481bda1d6a 652 m = 0;
jordaahh 11:e5481bda1d6a 653 }
jordaahh 11:e5481bda1d6a 654 switch (m) {
jordaahh 11:e5481bda1d6a 655 case 0 :
jordaahh 11:e5481bda1d6a 656 lcd.printString("YES",0,3);
jordaahh 15:cf59cdffe546 657
jordaahh 11:e5481bda1d6a 658 while(1) {
jordaahh 11:e5481bda1d6a 659 if(button == 1) {
jordaahh 11:e5481bda1d6a 660 clearCells();
jordaahh 11:e5481bda1d6a 661 playGame();
jordaahh 11:e5481bda1d6a 662 break;
jordaahh 11:e5481bda1d6a 663 } else {
jordaahh 11:e5481bda1d6a 664 break;
jordaahh 11:e5481bda1d6a 665 }
jordaahh 11:e5481bda1d6a 666 }
jordaahh 11:e5481bda1d6a 667 break;
jordaahh 11:e5481bda1d6a 668 case 1 :
jordaahh 11:e5481bda1d6a 669 lcd.printString("Play again?",0,0);
jordaahh 11:e5481bda1d6a 670 lcd.printString("Yes No",0,3);
jordaahh 15:cf59cdffe546 671
jordaahh 11:e5481bda1d6a 672 break;
jordaahh 11:e5481bda1d6a 673 case 2 :
jordaahh 11:e5481bda1d6a 674 lcd.printString("NO",70,3);
jordaahh 15:cf59cdffe546 675
jordaahh 11:e5481bda1d6a 676 while(1) {
jordaahh 11:e5481bda1d6a 677 if(button == 1) {
jordaahh 11:e5481bda1d6a 678 clearCells();
jordaahh 11:e5481bda1d6a 679 lcd.printString("Leaving Game",0,2); //enter function to commence here
jordaahh 14:c00b7a943fb5 680 wait(1.0);
jordaahh 11:e5481bda1d6a 681 menu();
jordaahh 11:e5481bda1d6a 682 break;
jordaahh 11:e5481bda1d6a 683 } else {
jordaahh 11:e5481bda1d6a 684 break;
jordaahh 11:e5481bda1d6a 685 }
jordaahh 11:e5481bda1d6a 686 }
jordaahh 11:e5481bda1d6a 687 break;
jordaahh 11:e5481bda1d6a 688 }
jordaahh 11:e5481bda1d6a 689 }
jordaahh 11:e5481bda1d6a 690 }
jordaahh 11:e5481bda1d6a 691 if (lcd.getPixel(i+1,j)) {
jordaahh 18:c93c501ed1c0 692 readDataFromFile();
jordaahh 18:c93c501ed1c0 693 writeDataToFile(); // write current value to disk
jordaahh 18:c93c501ed1c0 694
jordaahh 11:e5481bda1d6a 695 clearCells();
jordaahh 11:e5481bda1d6a 696 int m = 1;
jordaahh 11:e5481bda1d6a 697 lcd.printString("game over",1,2);
jordaahh 14:c00b7a943fb5 698 deadTone();
jordaahh 11:e5481bda1d6a 699 clearCells();
jordaahh 11:e5481bda1d6a 700 lcd.printString("Play again?",0,0);
jordaahh 11:e5481bda1d6a 701 lcd.printString("Yes No",0,3);
jordaahh 11:e5481bda1d6a 702
jordaahh 11:e5481bda1d6a 703 while(1) {
jordaahh 11:e5481bda1d6a 704 clearCells();
jordaahh 11:e5481bda1d6a 705 if ((joystick.direction == RIGHT)||(joystick.direction == upRight)||(joystick.direction == downRight)) {
jordaahh 11:e5481bda1d6a 706 m--;
jordaahh 11:e5481bda1d6a 707 }
jordaahh 11:e5481bda1d6a 708 if ((joystick.direction == LEFT)||(joystick.direction == upLeft)||(joystick.direction == downLeft)) {
jordaahh 11:e5481bda1d6a 709 m++;
jordaahh 11:e5481bda1d6a 710 }
jordaahh 11:e5481bda1d6a 711 if(m > 2) {
jordaahh 11:e5481bda1d6a 712 m = 2;
jordaahh 11:e5481bda1d6a 713 }
jordaahh 11:e5481bda1d6a 714 if(m < 0) {
jordaahh 11:e5481bda1d6a 715 m = 0;
jordaahh 11:e5481bda1d6a 716 }
jordaahh 11:e5481bda1d6a 717 switch (m) {
jordaahh 11:e5481bda1d6a 718 case 0 :
jordaahh 11:e5481bda1d6a 719 lcd.printString("YES",0,3);
jordaahh 15:cf59cdffe546 720
jordaahh 11:e5481bda1d6a 721 while(1) {
jordaahh 11:e5481bda1d6a 722 if(button == 1) {
jordaahh 11:e5481bda1d6a 723 clearCells();
jordaahh 11:e5481bda1d6a 724 playGame();
jordaahh 11:e5481bda1d6a 725 break;
jordaahh 11:e5481bda1d6a 726 } else {
jordaahh 11:e5481bda1d6a 727 break;
jordaahh 11:e5481bda1d6a 728 }
jordaahh 11:e5481bda1d6a 729 }
jordaahh 11:e5481bda1d6a 730 break;
jordaahh 11:e5481bda1d6a 731 case 1 :
jordaahh 11:e5481bda1d6a 732 lcd.printString("Play again?",0,0);
jordaahh 11:e5481bda1d6a 733 lcd.printString("Yes No",0,3);
jordaahh 15:cf59cdffe546 734
jordaahh 11:e5481bda1d6a 735 break;
jordaahh 11:e5481bda1d6a 736 case 2 :
jordaahh 11:e5481bda1d6a 737 lcd.printString("NO",70,3);
jordaahh 15:cf59cdffe546 738
jordaahh 11:e5481bda1d6a 739 while(1) {
jordaahh 11:e5481bda1d6a 740 if(button == 1) {
jordaahh 11:e5481bda1d6a 741 clearCells();
jordaahh 11:e5481bda1d6a 742 lcd.printString("Leaving Game",0,2); //enter function to commence here
jordaahh 14:c00b7a943fb5 743 wait(1.0);
jordaahh 11:e5481bda1d6a 744 menu();
jordaahh 11:e5481bda1d6a 745 break;
jordaahh 11:e5481bda1d6a 746 } else {
jordaahh 11:e5481bda1d6a 747 break;
jordaahh 11:e5481bda1d6a 748 }
jordaahh 11:e5481bda1d6a 749 }
jordaahh 11:e5481bda1d6a 750 break;
jordaahh 11:e5481bda1d6a 751 }
jordaahh 11:e5481bda1d6a 752 }
jordaahh 11:e5481bda1d6a 753 }
jordaahh 11:e5481bda1d6a 754 if (lcd.getPixel(i+2,j)) {
jordaahh 18:c93c501ed1c0 755 readDataFromFile();
jordaahh 18:c93c501ed1c0 756 writeDataToFile(); // write current value to disk
jordaahh 18:c93c501ed1c0 757
jordaahh 11:e5481bda1d6a 758 clearCells();
jordaahh 11:e5481bda1d6a 759 int m = 1;
jordaahh 11:e5481bda1d6a 760 lcd.printString("game over",1,2);
jordaahh 14:c00b7a943fb5 761 deadTone();
jordaahh 11:e5481bda1d6a 762 clearCells();
jordaahh 11:e5481bda1d6a 763 lcd.printString("Play again?",0,0);
jordaahh 11:e5481bda1d6a 764 lcd.printString("Yes No",0,3);
jordaahh 11:e5481bda1d6a 765
jordaahh 11:e5481bda1d6a 766 while(1) {
jordaahh 11:e5481bda1d6a 767 clearCells();
jordaahh 11:e5481bda1d6a 768 if ((joystick.direction == RIGHT)||(joystick.direction == upRight)||(joystick.direction == downRight)) {
jordaahh 11:e5481bda1d6a 769 m--;
jordaahh 11:e5481bda1d6a 770 }
jordaahh 11:e5481bda1d6a 771 if ((joystick.direction == LEFT)||(joystick.direction == upLeft)||(joystick.direction == downLeft)) {
jordaahh 11:e5481bda1d6a 772 m++;
jordaahh 11:e5481bda1d6a 773 }
jordaahh 11:e5481bda1d6a 774 if(m > 2) {
jordaahh 11:e5481bda1d6a 775 m = 2;
jordaahh 11:e5481bda1d6a 776 }
jordaahh 11:e5481bda1d6a 777 if(m < 0) {
jordaahh 11:e5481bda1d6a 778 m = 0;
jordaahh 11:e5481bda1d6a 779 }
jordaahh 11:e5481bda1d6a 780 switch (m) {
jordaahh 11:e5481bda1d6a 781 case 0 :
jordaahh 11:e5481bda1d6a 782 lcd.printString("YES",0,3);
jordaahh 15:cf59cdffe546 783
jordaahh 11:e5481bda1d6a 784 while(1) {
jordaahh 11:e5481bda1d6a 785 if(button == 1) {
jordaahh 11:e5481bda1d6a 786 clearCells();
jordaahh 11:e5481bda1d6a 787 playGame();
jordaahh 11:e5481bda1d6a 788 break;
jordaahh 11:e5481bda1d6a 789 } else {
jordaahh 11:e5481bda1d6a 790 break;
jordaahh 11:e5481bda1d6a 791 }
jordaahh 11:e5481bda1d6a 792 }
jordaahh 11:e5481bda1d6a 793 break;
jordaahh 11:e5481bda1d6a 794 case 1 :
jordaahh 11:e5481bda1d6a 795 lcd.printString("Play again?",0,0);
jordaahh 11:e5481bda1d6a 796 lcd.printString("Yes No",0,3);
jordaahh 15:cf59cdffe546 797
jordaahh 11:e5481bda1d6a 798 break;
jordaahh 11:e5481bda1d6a 799 case 2 :
jordaahh 11:e5481bda1d6a 800 lcd.printString("NO",70,3);
jordaahh 15:cf59cdffe546 801
jordaahh 11:e5481bda1d6a 802 while(1) {
jordaahh 11:e5481bda1d6a 803 if(button == 1) {
jordaahh 11:e5481bda1d6a 804 clearCells();
jordaahh 11:e5481bda1d6a 805 lcd.printString("Leaving Game",0,2); //enter function to commence here
jordaahh 14:c00b7a943fb5 806 wait(1.0);
jordaahh 11:e5481bda1d6a 807 menu();
jordaahh 11:e5481bda1d6a 808 break;
jordaahh 11:e5481bda1d6a 809 } else {
jordaahh 11:e5481bda1d6a 810 break;
jordaahh 11:e5481bda1d6a 811 }
jordaahh 11:e5481bda1d6a 812 }
jordaahh 11:e5481bda1d6a 813 break;
jordaahh 11:e5481bda1d6a 814 }
jordaahh 11:e5481bda1d6a 815 }
jordaahh 11:e5481bda1d6a 816 }
jordaahh 10:ffac6dc620ff 817 }
jordaahh 10:ffac6dc620ff 818 }
jordaahh 9:7c687ed420de 819 }
jordaahh 10:ffac6dc620ff 820
jordaahh 13:677d398423f7 821 // Brightness and volume menu function
jordaahh 11:e5481bda1d6a 822
jordaahh 13:677d398423f7 823 void BandVMenu()
jordaahh 11:e5481bda1d6a 824 {
jordaahh 11:e5481bda1d6a 825 int t = 0;
jordaahh 11:e5481bda1d6a 826 while(1) {
jordaahh 13:677d398423f7 827 wait(0.2);
jordaahh 11:e5481bda1d6a 828 clearCells();
jordaahh 11:e5481bda1d6a 829 if ((joystick.direction == RIGHT)||(joystick.direction == upRight)||(joystick.direction == downRight)) {
jordaahh 11:e5481bda1d6a 830 t++;
jordaahh 11:e5481bda1d6a 831 }
jordaahh 11:e5481bda1d6a 832 if ((joystick.direction == LEFT)||(joystick.direction == upLeft)||(joystick.direction == downLeft)) {
jordaahh 11:e5481bda1d6a 833 t--;
jordaahh 11:e5481bda1d6a 834 }
jordaahh 11:e5481bda1d6a 835 if(t > 1) {
jordaahh 11:e5481bda1d6a 836 t = 0;
jordaahh 11:e5481bda1d6a 837 }
jordaahh 11:e5481bda1d6a 838 if(t < 0) {
jordaahh 11:e5481bda1d6a 839 t = 1;
jordaahh 11:e5481bda1d6a 840 }
jordaahh 13:677d398423f7 841 if(joystick.direction == DOWN) {
jordaahh 13:677d398423f7 842 clearCells();
jordaahh 13:677d398423f7 843 lcd.printString("Returning",18,2);
jordaahh 13:677d398423f7 844 lcd.printString("to Menu",24,3);
jordaahh 13:677d398423f7 845 wait(0.5);
jordaahh 13:677d398423f7 846 menu();
jordaahh 13:677d398423f7 847 }
jordaahh 11:e5481bda1d6a 848 switch (t) {
jordaahh 11:e5481bda1d6a 849 case 0 :
jordaahh 13:677d398423f7 850 lcd.printString("< Brightness >",0,2);
jordaahh 13:677d398423f7 851 while(1) {
jordaahh 13:677d398423f7 852 if(button == 1) {
jordaahh 13:677d398423f7 853 brightness();
jordaahh 13:677d398423f7 854 break;
jordaahh 13:677d398423f7 855 } else {
jordaahh 13:677d398423f7 856 break;
jordaahh 13:677d398423f7 857 }
jordaahh 13:677d398423f7 858 }
jordaahh 13:677d398423f7 859 break;
jordaahh 13:677d398423f7 860 case 1 :
jordaahh 13:677d398423f7 861 lcd.printString("< Volume >",0,2);
jordaahh 13:677d398423f7 862 while(1) {
jordaahh 13:677d398423f7 863 if(button == 1) {
jordaahh 13:677d398423f7 864 volume();
jordaahh 13:677d398423f7 865 break;
jordaahh 13:677d398423f7 866 } else {
jordaahh 13:677d398423f7 867 break;
jordaahh 13:677d398423f7 868 }
jordaahh 13:677d398423f7 869 }
jordaahh 13:677d398423f7 870 break;
jordaahh 13:677d398423f7 871 }
jordaahh 14:c00b7a943fb5 872 }
jordaahh 13:677d398423f7 873 }
jordaahh 13:677d398423f7 874
jordaahh 13:677d398423f7 875
jordaahh 13:677d398423f7 876 void brightness()
jordaahh 13:677d398423f7 877 {
jordaahh 13:677d398423f7 878 while(1) {
jordaahh 13:677d398423f7 879 wait(0.2);
jordaahh 13:677d398423f7 880 clearCells();
jordaahh 13:677d398423f7 881 if ((joystick.direction == RIGHT)||(joystick.direction == upRight)||(joystick.direction == downRight)) {
jordaahh 13:677d398423f7 882 bright--;
jordaahh 13:677d398423f7 883 }
jordaahh 13:677d398423f7 884 if ((joystick.direction == LEFT)||(joystick.direction == upLeft)||(joystick.direction == downLeft)) {
jordaahh 13:677d398423f7 885 bright++;
jordaahh 13:677d398423f7 886 }
jordaahh 13:677d398423f7 887 if(bright > 3) {
jordaahh 13:677d398423f7 888 bright = 3;
jordaahh 14:c00b7a943fb5 889 }
jordaahh 13:677d398423f7 890 if(bright < -3) {
jordaahh 13:677d398423f7 891 bright = -3;
jordaahh 14:c00b7a943fb5 892 }
jordaahh 13:677d398423f7 893 switch (bright) {
jordaahh 13:677d398423f7 894 case 0 :
jordaahh 13:677d398423f7 895 lcd.printString(" Brightness ",0,2);
jordaahh 13:677d398423f7 896 lcd.printString(" ||||||",0,4);
jordaahh 14:c00b7a943fb5 897 lcd.setBrightness(0.6);
jordaahh 11:e5481bda1d6a 898 while(1) {
jordaahh 11:e5481bda1d6a 899 if(button == 1) {
jordaahh 13:677d398423f7 900 BandVMenu();
jordaahh 13:677d398423f7 901 break;
jordaahh 13:677d398423f7 902 } else {
jordaahh 13:677d398423f7 903 break;
jordaahh 13:677d398423f7 904 }
jordaahh 13:677d398423f7 905 }
jordaahh 13:677d398423f7 906 break;
jordaahh 13:677d398423f7 907 case 1 :
jordaahh 13:677d398423f7 908 lcd.printString(" Brightness ",0,2);
jordaahh 13:677d398423f7 909 lcd.printString(" ||||||||",0,4);
jordaahh 14:c00b7a943fb5 910 lcd.setBrightness(0.8);
jordaahh 13:677d398423f7 911 while(1) {
jordaahh 13:677d398423f7 912 if(button == 1) {
jordaahh 13:677d398423f7 913 BandVMenu();
jordaahh 13:677d398423f7 914 break;
jordaahh 13:677d398423f7 915 } else {
jordaahh 13:677d398423f7 916 break;
jordaahh 13:677d398423f7 917 }
jordaahh 13:677d398423f7 918 }
jordaahh 13:677d398423f7 919 break;
jordaahh 13:677d398423f7 920 case 2 :
jordaahh 13:677d398423f7 921 lcd.printString(" Brightness ",0,2);
jordaahh 13:677d398423f7 922 lcd.printString(" ||||||||||",0,4);
jordaahh 14:c00b7a943fb5 923 lcd.setBrightness(0.9);
jordaahh 13:677d398423f7 924 while(1) {
jordaahh 13:677d398423f7 925 if(button == 1) {
jordaahh 13:677d398423f7 926 BandVMenu();
jordaahh 13:677d398423f7 927 break;
jordaahh 13:677d398423f7 928 } else {
jordaahh 13:677d398423f7 929 break;
jordaahh 13:677d398423f7 930 }
jordaahh 13:677d398423f7 931 }
jordaahh 13:677d398423f7 932 break;
jordaahh 13:677d398423f7 933 case 3 :
jordaahh 13:677d398423f7 934 lcd.printString(" Brightness ",0,2);
jordaahh 13:677d398423f7 935 lcd.printString(" ||||||||||||",0,4);
jordaahh 14:c00b7a943fb5 936 lcd.setBrightness(1);
jordaahh 13:677d398423f7 937 while(1) {
jordaahh 13:677d398423f7 938 if(button == 1) {
jordaahh 13:677d398423f7 939 BandVMenu();
jordaahh 13:677d398423f7 940 break;
jordaahh 13:677d398423f7 941 } else {
jordaahh 13:677d398423f7 942 break;
jordaahh 13:677d398423f7 943 }
jordaahh 13:677d398423f7 944 }
jordaahh 13:677d398423f7 945 break;
jordaahh 13:677d398423f7 946 case -1 :
jordaahh 13:677d398423f7 947 lcd.printString(" Brightness ",0,2);
jordaahh 13:677d398423f7 948 lcd.printString(" ||||",0,4);
jordaahh 14:c00b7a943fb5 949 lcd.setBrightness(0.4);
jordaahh 13:677d398423f7 950 while(1) {
jordaahh 13:677d398423f7 951 if(button == 1) {
jordaahh 13:677d398423f7 952 BandVMenu();
jordaahh 13:677d398423f7 953 break;
jordaahh 13:677d398423f7 954 } else {
jordaahh 13:677d398423f7 955 break;
jordaahh 13:677d398423f7 956 }
jordaahh 13:677d398423f7 957 }
jordaahh 13:677d398423f7 958 break;
jordaahh 13:677d398423f7 959 case -2 :
jordaahh 13:677d398423f7 960 lcd.printString(" Brightness ",0,2);
jordaahh 13:677d398423f7 961 lcd.printString(" ||",0,4);
jordaahh 14:c00b7a943fb5 962 lcd.setBrightness(0.2);
jordaahh 13:677d398423f7 963 while(1) {
jordaahh 13:677d398423f7 964 if(button == 1) {
jordaahh 13:677d398423f7 965 BandVMenu();
jordaahh 11:e5481bda1d6a 966 break;
jordaahh 11:e5481bda1d6a 967 } else {
jordaahh 11:e5481bda1d6a 968 break;
jordaahh 11:e5481bda1d6a 969 }
jordaahh 11:e5481bda1d6a 970 }
jordaahh 11:e5481bda1d6a 971 break;
jordaahh 13:677d398423f7 972 case -3 :
jordaahh 13:677d398423f7 973 lcd.printString(" Brightness ",0,2);
jordaahh 14:c00b7a943fb5 974 lcd.setBrightness(0);
jordaahh 13:677d398423f7 975 while(1) {
jordaahh 13:677d398423f7 976 if(button == 1) {
jordaahh 13:677d398423f7 977 BandVMenu();
jordaahh 13:677d398423f7 978 break;
jordaahh 13:677d398423f7 979 } else {
jordaahh 13:677d398423f7 980 break;
jordaahh 13:677d398423f7 981 }
jordaahh 13:677d398423f7 982 }
jordaahh 13:677d398423f7 983 break;
jordaahh 14:c00b7a943fb5 984 }
jordaahh 14:c00b7a943fb5 985 }
jordaahh 13:677d398423f7 986 }
jordaahh 12:5ab932192a97 987
jordaahh 13:677d398423f7 988 void volume()
jordaahh 11:e5481bda1d6a 989 {
jordaahh 13:677d398423f7 990 while(1) {
jordaahh 13:677d398423f7 991 wait(0.2);
jordaahh 13:677d398423f7 992 clearCells();
jordaahh 13:677d398423f7 993 if ((joystick.direction == RIGHT)||(joystick.direction == upRight)||(joystick.direction == downRight)) {
jordaahh 13:677d398423f7 994 vol--;
jordaahh 13:677d398423f7 995 }
jordaahh 13:677d398423f7 996 if ((joystick.direction == LEFT)||(joystick.direction == upLeft)||(joystick.direction == downLeft)) {
jordaahh 13:677d398423f7 997 vol++;
jordaahh 13:677d398423f7 998 }
jordaahh 13:677d398423f7 999 if(vol > 3) {
jordaahh 13:677d398423f7 1000 vol = 3;
jordaahh 14:c00b7a943fb5 1001 }
jordaahh 13:677d398423f7 1002 if(vol < -3) {
jordaahh 13:677d398423f7 1003 vol = -3;
jordaahh 14:c00b7a943fb5 1004 }
jordaahh 13:677d398423f7 1005 switch (vol) {
jordaahh 13:677d398423f7 1006 case 0 :
jordaahh 14:c00b7a943fb5 1007 lcd.printString(" Volume ",0,2);
jordaahh 13:677d398423f7 1008 lcd.printString(" ||||||",0,4);
jordaahh 13:677d398423f7 1009 while(1) {
jordaahh 13:677d398423f7 1010 if(button == 1) {
jordaahh 13:677d398423f7 1011 BandVMenu();
jordaahh 13:677d398423f7 1012 break;
jordaahh 13:677d398423f7 1013 } else {
jordaahh 13:677d398423f7 1014 break;
jordaahh 13:677d398423f7 1015 }
jordaahh 13:677d398423f7 1016 }
jordaahh 13:677d398423f7 1017 break;
jordaahh 13:677d398423f7 1018 case 1 :
jordaahh 13:677d398423f7 1019 lcd.printString(" Volume ",0,2);
jordaahh 13:677d398423f7 1020 lcd.printString(" ||||||||",0,4);
jordaahh 13:677d398423f7 1021 while(1) {
jordaahh 13:677d398423f7 1022 if(button == 1) {
jordaahh 13:677d398423f7 1023 BandVMenu();
jordaahh 13:677d398423f7 1024 break;
jordaahh 13:677d398423f7 1025 } else {
jordaahh 13:677d398423f7 1026 break;
jordaahh 13:677d398423f7 1027 }
jordaahh 13:677d398423f7 1028 }
jordaahh 13:677d398423f7 1029 break;
jordaahh 13:677d398423f7 1030 case 2 :
jordaahh 13:677d398423f7 1031 lcd.printString(" Volume ",0,2);
jordaahh 13:677d398423f7 1032 lcd.printString(" ||||||||||",0,4);
jordaahh 13:677d398423f7 1033 while(1) {
jordaahh 13:677d398423f7 1034 if(button == 1) {
jordaahh 13:677d398423f7 1035 BandVMenu();
jordaahh 13:677d398423f7 1036 break;
jordaahh 13:677d398423f7 1037 } else {
jordaahh 13:677d398423f7 1038 break;
jordaahh 13:677d398423f7 1039 }
jordaahh 13:677d398423f7 1040 }
jordaahh 13:677d398423f7 1041 break;
jordaahh 13:677d398423f7 1042 case 3 :
jordaahh 13:677d398423f7 1043 lcd.printString(" Volume ",0,2);
jordaahh 13:677d398423f7 1044 lcd.printString(" ||||||||||||",0,4);
jordaahh 13:677d398423f7 1045 while(1) {
jordaahh 13:677d398423f7 1046 if(button == 1) {
jordaahh 13:677d398423f7 1047 BandVMenu();
jordaahh 13:677d398423f7 1048 break;
jordaahh 13:677d398423f7 1049 } else {
jordaahh 13:677d398423f7 1050 break;
jordaahh 13:677d398423f7 1051 }
jordaahh 13:677d398423f7 1052 }
jordaahh 13:677d398423f7 1053 break;
jordaahh 13:677d398423f7 1054 case -1 :
jordaahh 13:677d398423f7 1055 lcd.printString(" Volume ",0,2);
jordaahh 13:677d398423f7 1056 lcd.printString(" ||||",0,4);
jordaahh 13:677d398423f7 1057 while(1) {
jordaahh 13:677d398423f7 1058 if(button == 1) {
jordaahh 13:677d398423f7 1059 BandVMenu();
jordaahh 13:677d398423f7 1060 break;
jordaahh 13:677d398423f7 1061 } else {
jordaahh 13:677d398423f7 1062 break;
jordaahh 13:677d398423f7 1063 }
jordaahh 13:677d398423f7 1064 }
jordaahh 13:677d398423f7 1065 break;
jordaahh 13:677d398423f7 1066 case -2 :
jordaahh 13:677d398423f7 1067 lcd.printString(" Volume ",0,2);
jordaahh 13:677d398423f7 1068 lcd.printString(" ||",0,4);
jordaahh 13:677d398423f7 1069 while(1) {
jordaahh 13:677d398423f7 1070 if(button == 1) {
jordaahh 13:677d398423f7 1071 BandVMenu();
jordaahh 13:677d398423f7 1072 break;
jordaahh 13:677d398423f7 1073 } else {
jordaahh 13:677d398423f7 1074 break;
jordaahh 13:677d398423f7 1075 }
jordaahh 13:677d398423f7 1076 }
jordaahh 13:677d398423f7 1077 break;
jordaahh 13:677d398423f7 1078 case -3 :
jordaahh 13:677d398423f7 1079 lcd.printString(" Volume ",0,2);
jordaahh 13:677d398423f7 1080 lcd.printString(" MUTE",0,4);
jordaahh 13:677d398423f7 1081 while(1) {
jordaahh 13:677d398423f7 1082 if(button == 1) {
jordaahh 13:677d398423f7 1083 BandVMenu();
jordaahh 13:677d398423f7 1084 break;
jordaahh 13:677d398423f7 1085 } else {
jordaahh 13:677d398423f7 1086 break;
jordaahh 13:677d398423f7 1087 }
jordaahh 13:677d398423f7 1088 }
jordaahh 13:677d398423f7 1089 break;
jordaahh 14:c00b7a943fb5 1090 }
jordaahh 14:c00b7a943fb5 1091 }
jordaahh 14:c00b7a943fb5 1092 }
jordaahh 14:c00b7a943fb5 1093
jordaahh 18:c93c501ed1c0 1094 void writeDataToFile()
jordaahh 14:c00b7a943fb5 1095 {
jordaahh 18:c93c501ed1c0 1096
jordaahh 18:c93c501ed1c0 1097 FILE *fp = fopen("/local/score.csv", "w"); // open 'score.txt'
jordaahh 16:6723fa6c0f25 1098 // if the file doesn't exist it is created, if it exists, data is appended to the end
jordaahh 18:c93c501ed1c0 1099 fprintf(fp,"%i",score); // print string to file
jordaahh 17:f56dd50acf2d 1100 fclose(fp); // close file
jordaahh 18:c93c501ed1c0 1101 }
jordaahh 18:c93c501ed1c0 1102
jordaahh 18:c93c501ed1c0 1103 void readDataFromFile()
jordaahh 18:c93c501ed1c0 1104 {
jordaahh 18:c93c501ed1c0 1105 char Buffer[14];
jordaahh 18:c93c501ed1c0 1106
jordaahh 17:f56dd50acf2d 1107 FILE *fp2 = fopen("/local/score.csv", "r"); // open 'score.txt'
jordaahh 18:c93c501ed1c0 1108 fscanf (fp2, "%i",score);
jordaahh 18:c93c501ed1c0 1109 sprintf(Buffer,"%i", score);
jordaahh 17:f56dd50acf2d 1110 fclose(fp2); // close file
jordaahh 18:c93c501ed1c0 1111 lcd.printString(Buffer,0,0);
jordaahh 18:c93c501ed1c0 1112 wait(3);
jordaahh 13:677d398423f7 1113 }
jordaahh 13:677d398423f7 1114
jordaahh 14:c00b7a943fb5 1115
jordaahh 14:c00b7a943fb5 1116
jordaahh 14:c00b7a943fb5 1117 void tone()
jordaahh 15:cf59cdffe546 1118 {
jordaahh 14:c00b7a943fb5 1119
jordaahh 14:c00b7a943fb5 1120 if(FLAG3==1) {
jordaahh 14:c00b7a943fb5 1121 FLAG3 = 0;
jordaahh 14:c00b7a943fb5 1122 buz.period(1/(frequency[u])); // set PWM period
jordaahh 18:c93c501ed1c0 1123 buz=0.2;
jordaahh 14:c00b7a943fb5 1124 u++;
jordaahh 14:c00b7a943fb5 1125 }
jordaahh 14:c00b7a943fb5 1126 if( u > 30) {
jordaahh 14:c00b7a943fb5 1127 u = 0;
jordaahh 14:c00b7a943fb5 1128 }
jordaahh 11:e5481bda1d6a 1129
jordaahh 14:c00b7a943fb5 1130 }
jordaahh 14:c00b7a943fb5 1131
jordaahh 14:c00b7a943fb5 1132 void deadTone()
jordaahh 14:c00b7a943fb5 1133 {
jordaahh 14:c00b7a943fb5 1134 int l = 0;
jordaahh 14:c00b7a943fb5 1135 while(1) {
jordaahh 14:c00b7a943fb5 1136 if(FLAG3==1) {
jordaahh 14:c00b7a943fb5 1137 FLAG3 = 0;
jordaahh 14:c00b7a943fb5 1138 buz.period(1/(frequency2[l])); // set PWM period
jordaahh 18:c93c501ed1c0 1139 buz=0.2;
jordaahh 14:c00b7a943fb5 1140 l++;
jordaahh 13:677d398423f7 1141 }
jordaahh 14:c00b7a943fb5 1142 if( l > 6) {
jordaahh 14:c00b7a943fb5 1143 break;
jordaahh 14:c00b7a943fb5 1144 }
jordaahh 14:c00b7a943fb5 1145 }
jordaahh 14:c00b7a943fb5 1146 }