Dependencies:   N5110 mbed

Committer:
jordaahh
Date:
Fri May 01 11:00:47 2015 +0000
Revision:
19:baa140ab4490
Parent:
18:c93c501ed1c0
Child:
20:ef5e8840cb9a
writes and reads high score. Need to create function to overwrite score if it is better.

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 19:baa140ab4490 287 readDataFromFile();
jordaahh 10:ffac6dc620ff 288 } else {
jordaahh 10:ffac6dc620ff 289 break;
jordaahh 10:ffac6dc620ff 290 }
jordaahh 10:ffac6dc620ff 291 }
jordaahh 10:ffac6dc620ff 292 break;
jordaahh 10:ffac6dc620ff 293
jordaahh 9:7c687ed420de 294 }
jordaahh 10:ffac6dc620ff 295 }
jordaahh 9:7c687ed420de 296 }
jordaahh 9:7c687ed420de 297
jordaahh 11:e5481bda1d6a 298
jordaahh 10:ffac6dc620ff 299 void playGame()
jordaahh 9:7c687ed420de 300 {
jordaahh 10:ffac6dc620ff 301 int i=24; // initial coordinates for player object
jordaahh 10:ffac6dc620ff 302 int j=42;
jordaahh 10:ffac6dc620ff 303 int x = 0; // wall starts from the coordinates (0,0)
jordaahh 10:ffac6dc620ff 304 int y = 0;
jordaahh 10:ffac6dc620ff 305 int z = 30;
jordaahh 11:e5481bda1d6a 306 int a = 0;
jordaahh 11:e5481bda1d6a 307 int b = 47;
jordaahh 11:e5481bda1d6a 308 int d = 30;
jordaahh 11:e5481bda1d6a 309 int f = 0;
jordaahh 11:e5481bda1d6a 310 int g = 0;
jordaahh 11:e5481bda1d6a 311 int h = 24;
jordaahh 11:e5481bda1d6a 312 int q = 83;
jordaahh 11:e5481bda1d6a 313 int w = 0;
jordaahh 11:e5481bda1d6a 314 int e = 24;
jordaahh 18:c93c501ed1c0 315 score = 0;
jordaahh 11:e5481bda1d6a 316
jordaahh 10:ffac6dc620ff 317 lcd.printString("GO!",35,2);
jordaahh 10:ffac6dc620ff 318 wait(1);
jordaahh 10:ffac6dc620ff 319 while(1) {
jordaahh 14:c00b7a943fb5 320 tone();
jordaahh 10:ffac6dc620ff 321 lcd.drawRect(i,j,2,2,0);
jordaahh 9:7c687ed420de 322 clearCells();
jordaahh 10:ffac6dc620ff 323 lcd.drawLine(x,y,z,y,1); // draws a line at the top of the screen to symbolise a wall
jordaahh 10:ffac6dc620ff 324 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 325 if(FLAG==1) {
jordaahh 10:ffac6dc620ff 326 FLAG=0;
jordaahh 10:ffac6dc620ff 327 y++; // everytime the flag changes to one it is reset and the wall moves down by one pixel
jordaahh 10:ffac6dc620ff 328 }
jordaahh 10:ffac6dc620ff 329 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 330 y = 0;
jordaahh 10:ffac6dc620ff 331 z = rand()%74;
jordaahh 11:e5481bda1d6a 332 score++;
jordaahh 11:e5481bda1d6a 333 }
jordaahh 11:e5481bda1d6a 334 if(( score > 1)&&(score < 5)) {
jordaahh 11:e5481bda1d6a 335 lcd.drawLine(a,b,d,b,1); // draws a line at the top of the screen to symbolise a wall
jordaahh 11:e5481bda1d6a 336 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 337 if(FLAG3==1) {
jordaahh 11:e5481bda1d6a 338 FLAG3=0;
jordaahh 11:e5481bda1d6a 339 b--; // everytime the flag changes to one it is reset and the wall moves down by one pixel
jordaahh 11:e5481bda1d6a 340 }
jordaahh 11:e5481bda1d6a 341 }
jordaahh 11:e5481bda1d6a 342 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 343 b = 47;
jordaahh 11:e5481bda1d6a 344 d = rand()%74;
jordaahh 11:e5481bda1d6a 345 }
jordaahh 11:e5481bda1d6a 346 if(( score > 5)&&(score < 9)) {
jordaahh 11:e5481bda1d6a 347 lcd.drawLine(f,g,f,h,1);
jordaahh 11:e5481bda1d6a 348 lcd.drawLine(f,h+10,f,47,1);
jordaahh 11:e5481bda1d6a 349 if(FLAG2==1) {
jordaahh 11:e5481bda1d6a 350 FLAG2=0;
jordaahh 11:e5481bda1d6a 351 f++; // everytime the flag changes to one it is reset and the wall moves down by one pixel
jordaahh 11:e5481bda1d6a 352 }
jordaahh 11:e5481bda1d6a 353 }
jordaahh 11:e5481bda1d6a 354 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 355 f = 0;
jordaahh 11:e5481bda1d6a 356 h = rand()%38;
jordaahh 11:e5481bda1d6a 357 }
jordaahh 11:e5481bda1d6a 358 if(( score > 10)&&(score < 15)) {
jordaahh 11:e5481bda1d6a 359 lcd.drawLine(q,w,q,e,1); // draws a line at the top of the screen to symbolise a wall
jordaahh 11:e5481bda1d6a 360 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 361 if(FLAG3==1) {
jordaahh 11:e5481bda1d6a 362 FLAG3=0;
jordaahh 11:e5481bda1d6a 363 q--; // everytime the flag changes to one it is reset and the wall moves down by one pixel
jordaahh 11:e5481bda1d6a 364 }
jordaahh 11:e5481bda1d6a 365 }
jordaahh 11:e5481bda1d6a 366 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 367 q = 83;
jordaahh 11:e5481bda1d6a 368 e = rand()%38;
jordaahh 11:e5481bda1d6a 369 }
jordaahh 11:e5481bda1d6a 370 if( score > 15) {
jordaahh 11:e5481bda1d6a 371 lcd.drawLine(q,w,q,e,1); // draws a line at the top of the screen to symbolise a wall
jordaahh 11:e5481bda1d6a 372 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 373 if(FLAG3==1) {
jordaahh 11:e5481bda1d6a 374 FLAG3=0;
jordaahh 11:e5481bda1d6a 375 q--; // everytime the flag changes to one it is reset and the wall moves down by one pixel
jordaahh 11:e5481bda1d6a 376 }
jordaahh 11:e5481bda1d6a 377 }
jordaahh 11:e5481bda1d6a 378 if( score > 20) {
jordaahh 11:e5481bda1d6a 379 lcd.drawLine(a,b,d,b,1); // draws a line at the top of the screen to symbolise a wall
jordaahh 11:e5481bda1d6a 380 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 381 if(FLAG2==1) {
jordaahh 11:e5481bda1d6a 382 FLAG2=0;
jordaahh 11:e5481bda1d6a 383 b--; // everytime the flag changes to one it is reset and the wall moves down by one pixel
jordaahh 11:e5481bda1d6a 384 }
jordaahh 10:ffac6dc620ff 385 }
jordaahh 10:ffac6dc620ff 386
jordaahh 10:ffac6dc620ff 387 if( j > 45) { // rules to prevent player object going off the screen
jordaahh 10:ffac6dc620ff 388 j = 45;
jordaahh 10:ffac6dc620ff 389 }
jordaahh 10:ffac6dc620ff 390 if( i > 81) {
jordaahh 10:ffac6dc620ff 391 i = 81;
jordaahh 10:ffac6dc620ff 392 }
jordaahh 10:ffac6dc620ff 393 if( j < 0) {
jordaahh 10:ffac6dc620ff 394 j = 0;
jordaahh 10:ffac6dc620ff 395 }
jordaahh 10:ffac6dc620ff 396 if( i < 0) {
jordaahh 10:ffac6dc620ff 397 i = 0;
jordaahh 10:ffac6dc620ff 398 }
jordaahh 10:ffac6dc620ff 399
jordaahh 10:ffac6dc620ff 400 if (printFlag) { // if flag set, clear flag and implicate joystick functions
jordaahh 10:ffac6dc620ff 401 printFlag = 0;
jordaahh 10:ffac6dc620ff 402
jordaahh 10:ffac6dc620ff 403
jordaahh 10:ffac6dc620ff 404 // check joystick direction
jordaahh 10:ffac6dc620ff 405 if (joystick.direction == UP) {
jordaahh 10:ffac6dc620ff 406 j--;
jordaahh 10:ffac6dc620ff 407 }
jordaahh 10:ffac6dc620ff 408 if (joystick.direction == DOWN) {
jordaahh 10:ffac6dc620ff 409 j++;
jordaahh 10:ffac6dc620ff 410 }
jordaahh 10:ffac6dc620ff 411 if (joystick.direction == LEFT) {
jordaahh 11:e5481bda1d6a 412 i++;
jordaahh 10:ffac6dc620ff 413 }
jordaahh 10:ffac6dc620ff 414 if (joystick.direction == RIGHT) {
jordaahh 11:e5481bda1d6a 415 i--;
jordaahh 10:ffac6dc620ff 416 }
jordaahh 10:ffac6dc620ff 417 if (joystick.direction == upRight) {
jordaahh 10:ffac6dc620ff 418 j--;
jordaahh 11:e5481bda1d6a 419 i--;
jordaahh 11:e5481bda1d6a 420 }
jordaahh 11:e5481bda1d6a 421 if (joystick.direction == downRight) {
jordaahh 11:e5481bda1d6a 422 j++;
jordaahh 11:e5481bda1d6a 423 i--;
jordaahh 11:e5481bda1d6a 424 }
jordaahh 11:e5481bda1d6a 425 if (joystick.direction == upLeft) {
jordaahh 11:e5481bda1d6a 426 j--;
jordaahh 10:ffac6dc620ff 427 i++;
jordaahh 10:ffac6dc620ff 428 }
jordaahh 11:e5481bda1d6a 429 if (joystick.direction == downLeft) {
jordaahh 10:ffac6dc620ff 430 j++;
jordaahh 10:ffac6dc620ff 431 i++;
jordaahh 10:ffac6dc620ff 432 }
jordaahh 10:ffac6dc620ff 433 if (joystick.direction == CENTRE) {
jordaahh 10:ffac6dc620ff 434 i=i;
jordaahh 10:ffac6dc620ff 435 j=j;
jordaahh 10:ffac6dc620ff 436 }
jordaahh 10:ffac6dc620ff 437 if (lcd.getPixel(i,j-1)) {
jordaahh 19:baa140ab4490 438
jordaahh 18:c93c501ed1c0 439 writeDataToFile(); // write current value to disk
jordaahh 10:ffac6dc620ff 440 clearCells();
jordaahh 10:ffac6dc620ff 441 int m = 1;
jordaahh 10:ffac6dc620ff 442 lcd.printString("game over",1,2);
jordaahh 14:c00b7a943fb5 443 deadTone();
jordaahh 9:7c687ed420de 444 clearCells();
jordaahh 10:ffac6dc620ff 445 lcd.printString("Play again?",0,0);
jordaahh 10:ffac6dc620ff 446 lcd.printString("Yes No",0,3);
jordaahh 10:ffac6dc620ff 447
jordaahh 10:ffac6dc620ff 448 while(1) {
jordaahh 10:ffac6dc620ff 449 clearCells();
jordaahh 10:ffac6dc620ff 450 if ((joystick.direction == RIGHT)||(joystick.direction == upRight)||(joystick.direction == downRight)) {
jordaahh 11:e5481bda1d6a 451 m--;
jordaahh 10:ffac6dc620ff 452 }
jordaahh 10:ffac6dc620ff 453 if ((joystick.direction == LEFT)||(joystick.direction == upLeft)||(joystick.direction == downLeft)) {
jordaahh 11:e5481bda1d6a 454 m++;
jordaahh 10:ffac6dc620ff 455 }
jordaahh 10:ffac6dc620ff 456 if(m > 2) {
jordaahh 10:ffac6dc620ff 457 m = 2;
jordaahh 10:ffac6dc620ff 458 }
jordaahh 10:ffac6dc620ff 459 if(m < 0) {
jordaahh 10:ffac6dc620ff 460 m = 0;
jordaahh 10:ffac6dc620ff 461 }
jordaahh 10:ffac6dc620ff 462 switch (m) {
jordaahh 10:ffac6dc620ff 463 case 0 :
jordaahh 10:ffac6dc620ff 464 lcd.printString("YES",0,3);
jordaahh 15:cf59cdffe546 465
jordaahh 10:ffac6dc620ff 466 while(1) {
jordaahh 10:ffac6dc620ff 467 if(button == 1) {
jordaahh 10:ffac6dc620ff 468 clearCells();
jordaahh 10:ffac6dc620ff 469 playGame();
jordaahh 10:ffac6dc620ff 470 break;
jordaahh 10:ffac6dc620ff 471 } else {
jordaahh 10:ffac6dc620ff 472 break;
jordaahh 10:ffac6dc620ff 473 }
jordaahh 10:ffac6dc620ff 474 }
jordaahh 10:ffac6dc620ff 475 break;
jordaahh 10:ffac6dc620ff 476 case 1 :
jordaahh 10:ffac6dc620ff 477 lcd.printString("Play again?",0,0);
jordaahh 10:ffac6dc620ff 478 lcd.printString("Yes No",0,3);
jordaahh 15:cf59cdffe546 479
jordaahh 10:ffac6dc620ff 480 break;
jordaahh 10:ffac6dc620ff 481 case 2 :
jordaahh 10:ffac6dc620ff 482 lcd.printString("NO",70,3);
jordaahh 15:cf59cdffe546 483
jordaahh 10:ffac6dc620ff 484 while(1) {
jordaahh 10:ffac6dc620ff 485 if(button == 1) {
jordaahh 10:ffac6dc620ff 486 clearCells();
jordaahh 10:ffac6dc620ff 487 lcd.printString("Leaving Game",0,2); //enter function to commence here
jordaahh 14:c00b7a943fb5 488 wait(1.0);
jordaahh 10:ffac6dc620ff 489 menu();
jordaahh 10:ffac6dc620ff 490 break;
jordaahh 10:ffac6dc620ff 491 } else {
jordaahh 10:ffac6dc620ff 492 break;
jordaahh 10:ffac6dc620ff 493 }
jordaahh 10:ffac6dc620ff 494 }
jordaahh 10:ffac6dc620ff 495 break;
jordaahh 10:ffac6dc620ff 496
jordaahh 10:ffac6dc620ff 497 }
jordaahh 9:7c687ed420de 498 }
jordaahh 10:ffac6dc620ff 499 }
jordaahh 10:ffac6dc620ff 500 if (lcd.getPixel(i+1,j-1)) {
jordaahh 19:baa140ab4490 501
jordaahh 18:c93c501ed1c0 502 writeDataToFile(); // write current value to disk
jordaahh 10:ffac6dc620ff 503 clearCells();
jordaahh 10:ffac6dc620ff 504 int m = 1;
jordaahh 10:ffac6dc620ff 505 lcd.printString("game over",1,2);
jordaahh 14:c00b7a943fb5 506 deadTone();
jordaahh 9:7c687ed420de 507 clearCells();
jordaahh 10:ffac6dc620ff 508 lcd.printString("Play again?",0,0);
jordaahh 10:ffac6dc620ff 509 lcd.printString("Yes No",0,3);
jordaahh 10:ffac6dc620ff 510
jordaahh 10:ffac6dc620ff 511 while(1) {
jordaahh 10:ffac6dc620ff 512 clearCells();
jordaahh 10:ffac6dc620ff 513 if ((joystick.direction == RIGHT)||(joystick.direction == upRight)||(joystick.direction == downRight)) {
jordaahh 11:e5481bda1d6a 514 m--;
jordaahh 10:ffac6dc620ff 515 }
jordaahh 10:ffac6dc620ff 516 if ((joystick.direction == LEFT)||(joystick.direction == upLeft)||(joystick.direction == downLeft)) {
jordaahh 11:e5481bda1d6a 517 m++;
jordaahh 10:ffac6dc620ff 518 }
jordaahh 10:ffac6dc620ff 519 if(m > 2) {
jordaahh 10:ffac6dc620ff 520 m = 2;
jordaahh 10:ffac6dc620ff 521 }
jordaahh 10:ffac6dc620ff 522 if(m < 0) {
jordaahh 10:ffac6dc620ff 523 m = 0;
jordaahh 10:ffac6dc620ff 524 }
jordaahh 10:ffac6dc620ff 525 switch (m) {
jordaahh 10:ffac6dc620ff 526 case 0 :
jordaahh 10:ffac6dc620ff 527 lcd.printString("YES",0,3);
jordaahh 15:cf59cdffe546 528
jordaahh 10:ffac6dc620ff 529 while(1) {
jordaahh 10:ffac6dc620ff 530 if(button == 1) {
jordaahh 10:ffac6dc620ff 531 clearCells();
jordaahh 10:ffac6dc620ff 532 playGame();
jordaahh 10:ffac6dc620ff 533 break;
jordaahh 10:ffac6dc620ff 534 } else {
jordaahh 10:ffac6dc620ff 535 break;
jordaahh 10:ffac6dc620ff 536 }
jordaahh 10:ffac6dc620ff 537 }
jordaahh 10:ffac6dc620ff 538 break;
jordaahh 10:ffac6dc620ff 539 case 1 :
jordaahh 10:ffac6dc620ff 540 lcd.printString("Play again?",0,0);
jordaahh 10:ffac6dc620ff 541 lcd.printString("Yes No",0,3);
jordaahh 15:cf59cdffe546 542
jordaahh 10:ffac6dc620ff 543 break;
jordaahh 10:ffac6dc620ff 544 case 2 :
jordaahh 10:ffac6dc620ff 545 lcd.printString("NO",70,3);
jordaahh 15:cf59cdffe546 546
jordaahh 10:ffac6dc620ff 547 while(1) {
jordaahh 10:ffac6dc620ff 548 if(button == 1) {
jordaahh 10:ffac6dc620ff 549 clearCells();
jordaahh 10:ffac6dc620ff 550 lcd.printString("Leaving Game",0,2); //enter function to commence here
jordaahh 14:c00b7a943fb5 551 wait(1.0);
jordaahh 10:ffac6dc620ff 552 menu();
jordaahh 10:ffac6dc620ff 553 break;
jordaahh 10:ffac6dc620ff 554 } else {
jordaahh 10:ffac6dc620ff 555 break;
jordaahh 10:ffac6dc620ff 556 }
jordaahh 10:ffac6dc620ff 557 }
jordaahh 10:ffac6dc620ff 558 break;
jordaahh 10:ffac6dc620ff 559 }
jordaahh 9:7c687ed420de 560 }
jordaahh 10:ffac6dc620ff 561 }
jordaahh 10:ffac6dc620ff 562 if (lcd.getPixel(i+2,j-1)) {
jordaahh 19:baa140ab4490 563
jordaahh 18:c93c501ed1c0 564 writeDataToFile(); // write current value to disk
jordaahh 10:ffac6dc620ff 565 clearCells();
jordaahh 10:ffac6dc620ff 566 int m = 1;
jordaahh 10:ffac6dc620ff 567 lcd.printString("game over",1,2);
jordaahh 14:c00b7a943fb5 568 deadTone();
jordaahh 10:ffac6dc620ff 569 clearCells();
jordaahh 10:ffac6dc620ff 570 lcd.printString("Play again?",0,0);
jordaahh 10:ffac6dc620ff 571 lcd.printString("Yes No",0,3);
jordaahh 10:ffac6dc620ff 572
jordaahh 10:ffac6dc620ff 573 while(1) {
jordaahh 10:ffac6dc620ff 574 clearCells();
jordaahh 10:ffac6dc620ff 575 if ((joystick.direction == RIGHT)||(joystick.direction == upRight)||(joystick.direction == downRight)) {
jordaahh 11:e5481bda1d6a 576 m--;
jordaahh 10:ffac6dc620ff 577 }
jordaahh 10:ffac6dc620ff 578 if ((joystick.direction == LEFT)||(joystick.direction == upLeft)||(joystick.direction == downLeft)) {
jordaahh 11:e5481bda1d6a 579 m++;
jordaahh 10:ffac6dc620ff 580 }
jordaahh 10:ffac6dc620ff 581 if(m > 2) {
jordaahh 10:ffac6dc620ff 582 m = 2;
jordaahh 10:ffac6dc620ff 583 }
jordaahh 10:ffac6dc620ff 584 if(m < 0) {
jordaahh 10:ffac6dc620ff 585 m = 0;
jordaahh 10:ffac6dc620ff 586 }
jordaahh 10:ffac6dc620ff 587 switch (m) {
jordaahh 10:ffac6dc620ff 588 case 0 :
jordaahh 10:ffac6dc620ff 589 lcd.printString("YES",0,3);
jordaahh 10:ffac6dc620ff 590 while(1) {
jordaahh 10:ffac6dc620ff 591 if(button == 1) {
jordaahh 10:ffac6dc620ff 592 clearCells();
jordaahh 10:ffac6dc620ff 593 playGame();
jordaahh 10:ffac6dc620ff 594 break;
jordaahh 10:ffac6dc620ff 595 } else {
jordaahh 10:ffac6dc620ff 596 break;
jordaahh 10:ffac6dc620ff 597 }
jordaahh 10:ffac6dc620ff 598 }
jordaahh 10:ffac6dc620ff 599 break;
jordaahh 10:ffac6dc620ff 600 case 1 :
jordaahh 10:ffac6dc620ff 601 lcd.printString("Play again?",0,0);
jordaahh 10:ffac6dc620ff 602 lcd.printString("Yes No",0,3);
jordaahh 10:ffac6dc620ff 603 break;
jordaahh 10:ffac6dc620ff 604 case 2 :
jordaahh 10:ffac6dc620ff 605 lcd.printString("NO",70,3);
jordaahh 10:ffac6dc620ff 606 while(1) {
jordaahh 10:ffac6dc620ff 607 if(button == 1) {
jordaahh 10:ffac6dc620ff 608 clearCells();
jordaahh 10:ffac6dc620ff 609 lcd.printString("Leaving Game",0,2); //enter function to commence here
jordaahh 14:c00b7a943fb5 610 wait(1.0);
jordaahh 10:ffac6dc620ff 611 menu();
jordaahh 10:ffac6dc620ff 612 break;
jordaahh 10:ffac6dc620ff 613 } else {
jordaahh 10:ffac6dc620ff 614 break;
jordaahh 10:ffac6dc620ff 615 }
jordaahh 10:ffac6dc620ff 616 }
jordaahh 10:ffac6dc620ff 617 break;
jordaahh 10:ffac6dc620ff 618
jordaahh 10:ffac6dc620ff 619 }
jordaahh 9:7c687ed420de 620 }
jordaahh 9:7c687ed420de 621 }
jordaahh 11:e5481bda1d6a 622 if (lcd.getPixel(i,j)) {
jordaahh 19:baa140ab4490 623
jordaahh 18:c93c501ed1c0 624 writeDataToFile(); // write current value to disk
jordaahh 11:e5481bda1d6a 625 clearCells();
jordaahh 11:e5481bda1d6a 626 int m = 1;
jordaahh 11:e5481bda1d6a 627 lcd.printString("game over",1,2);
jordaahh 14:c00b7a943fb5 628 deadTone();
jordaahh 11:e5481bda1d6a 629 clearCells();
jordaahh 11:e5481bda1d6a 630 lcd.printString("Play again?",0,0);
jordaahh 11:e5481bda1d6a 631 lcd.printString("Yes No",0,3);
jordaahh 13:677d398423f7 632
jordaahh 9:7c687ed420de 633
jordaahh 11:e5481bda1d6a 634 while(1) {
jordaahh 11:e5481bda1d6a 635 clearCells();
jordaahh 11:e5481bda1d6a 636 if ((joystick.direction == RIGHT)||(joystick.direction == upRight)||(joystick.direction == downRight)) {
jordaahh 11:e5481bda1d6a 637 m--;
jordaahh 11:e5481bda1d6a 638 }
jordaahh 11:e5481bda1d6a 639 if ((joystick.direction == LEFT)||(joystick.direction == upLeft)||(joystick.direction == downLeft)) {
jordaahh 11:e5481bda1d6a 640 m++;
jordaahh 11:e5481bda1d6a 641 }
jordaahh 11:e5481bda1d6a 642 if(m > 2) {
jordaahh 11:e5481bda1d6a 643 m = 2;
jordaahh 11:e5481bda1d6a 644 }
jordaahh 11:e5481bda1d6a 645 if(m < 0) {
jordaahh 11:e5481bda1d6a 646 m = 0;
jordaahh 11:e5481bda1d6a 647 }
jordaahh 11:e5481bda1d6a 648 switch (m) {
jordaahh 11:e5481bda1d6a 649 case 0 :
jordaahh 11:e5481bda1d6a 650 lcd.printString("YES",0,3);
jordaahh 15:cf59cdffe546 651
jordaahh 11:e5481bda1d6a 652 while(1) {
jordaahh 11:e5481bda1d6a 653 if(button == 1) {
jordaahh 11:e5481bda1d6a 654 clearCells();
jordaahh 11:e5481bda1d6a 655 playGame();
jordaahh 11:e5481bda1d6a 656 break;
jordaahh 11:e5481bda1d6a 657 } else {
jordaahh 11:e5481bda1d6a 658 break;
jordaahh 11:e5481bda1d6a 659 }
jordaahh 11:e5481bda1d6a 660 }
jordaahh 11:e5481bda1d6a 661 break;
jordaahh 11:e5481bda1d6a 662 case 1 :
jordaahh 11:e5481bda1d6a 663 lcd.printString("Play again?",0,0);
jordaahh 11:e5481bda1d6a 664 lcd.printString("Yes No",0,3);
jordaahh 15:cf59cdffe546 665
jordaahh 11:e5481bda1d6a 666 break;
jordaahh 11:e5481bda1d6a 667 case 2 :
jordaahh 11:e5481bda1d6a 668 lcd.printString("NO",70,3);
jordaahh 15:cf59cdffe546 669
jordaahh 11:e5481bda1d6a 670 while(1) {
jordaahh 11:e5481bda1d6a 671 if(button == 1) {
jordaahh 11:e5481bda1d6a 672 clearCells();
jordaahh 11:e5481bda1d6a 673 lcd.printString("Leaving Game",0,2); //enter function to commence here
jordaahh 14:c00b7a943fb5 674 wait(1.0);
jordaahh 11:e5481bda1d6a 675 menu();
jordaahh 11:e5481bda1d6a 676 break;
jordaahh 11:e5481bda1d6a 677 } else {
jordaahh 11:e5481bda1d6a 678 break;
jordaahh 11:e5481bda1d6a 679 }
jordaahh 11:e5481bda1d6a 680 }
jordaahh 11:e5481bda1d6a 681 break;
jordaahh 11:e5481bda1d6a 682 }
jordaahh 11:e5481bda1d6a 683 }
jordaahh 11:e5481bda1d6a 684 }
jordaahh 11:e5481bda1d6a 685 if (lcd.getPixel(i+1,j)) {
jordaahh 19:baa140ab4490 686
jordaahh 18:c93c501ed1c0 687 writeDataToFile(); // write current value to disk
jordaahh 11:e5481bda1d6a 688 clearCells();
jordaahh 11:e5481bda1d6a 689 int m = 1;
jordaahh 11:e5481bda1d6a 690 lcd.printString("game over",1,2);
jordaahh 14:c00b7a943fb5 691 deadTone();
jordaahh 11:e5481bda1d6a 692 clearCells();
jordaahh 11:e5481bda1d6a 693 lcd.printString("Play again?",0,0);
jordaahh 11:e5481bda1d6a 694 lcd.printString("Yes No",0,3);
jordaahh 11:e5481bda1d6a 695
jordaahh 11:e5481bda1d6a 696 while(1) {
jordaahh 11:e5481bda1d6a 697 clearCells();
jordaahh 11:e5481bda1d6a 698 if ((joystick.direction == RIGHT)||(joystick.direction == upRight)||(joystick.direction == downRight)) {
jordaahh 11:e5481bda1d6a 699 m--;
jordaahh 11:e5481bda1d6a 700 }
jordaahh 11:e5481bda1d6a 701 if ((joystick.direction == LEFT)||(joystick.direction == upLeft)||(joystick.direction == downLeft)) {
jordaahh 11:e5481bda1d6a 702 m++;
jordaahh 11:e5481bda1d6a 703 }
jordaahh 11:e5481bda1d6a 704 if(m > 2) {
jordaahh 11:e5481bda1d6a 705 m = 2;
jordaahh 11:e5481bda1d6a 706 }
jordaahh 11:e5481bda1d6a 707 if(m < 0) {
jordaahh 11:e5481bda1d6a 708 m = 0;
jordaahh 11:e5481bda1d6a 709 }
jordaahh 11:e5481bda1d6a 710 switch (m) {
jordaahh 11:e5481bda1d6a 711 case 0 :
jordaahh 11:e5481bda1d6a 712 lcd.printString("YES",0,3);
jordaahh 15:cf59cdffe546 713
jordaahh 11:e5481bda1d6a 714 while(1) {
jordaahh 11:e5481bda1d6a 715 if(button == 1) {
jordaahh 11:e5481bda1d6a 716 clearCells();
jordaahh 11:e5481bda1d6a 717 playGame();
jordaahh 11:e5481bda1d6a 718 break;
jordaahh 11:e5481bda1d6a 719 } else {
jordaahh 11:e5481bda1d6a 720 break;
jordaahh 11:e5481bda1d6a 721 }
jordaahh 11:e5481bda1d6a 722 }
jordaahh 11:e5481bda1d6a 723 break;
jordaahh 11:e5481bda1d6a 724 case 1 :
jordaahh 11:e5481bda1d6a 725 lcd.printString("Play again?",0,0);
jordaahh 11:e5481bda1d6a 726 lcd.printString("Yes No",0,3);
jordaahh 15:cf59cdffe546 727
jordaahh 11:e5481bda1d6a 728 break;
jordaahh 11:e5481bda1d6a 729 case 2 :
jordaahh 11:e5481bda1d6a 730 lcd.printString("NO",70,3);
jordaahh 15:cf59cdffe546 731
jordaahh 11:e5481bda1d6a 732 while(1) {
jordaahh 11:e5481bda1d6a 733 if(button == 1) {
jordaahh 11:e5481bda1d6a 734 clearCells();
jordaahh 11:e5481bda1d6a 735 lcd.printString("Leaving Game",0,2); //enter function to commence here
jordaahh 14:c00b7a943fb5 736 wait(1.0);
jordaahh 11:e5481bda1d6a 737 menu();
jordaahh 11:e5481bda1d6a 738 break;
jordaahh 11:e5481bda1d6a 739 } else {
jordaahh 11:e5481bda1d6a 740 break;
jordaahh 11:e5481bda1d6a 741 }
jordaahh 11:e5481bda1d6a 742 }
jordaahh 11:e5481bda1d6a 743 break;
jordaahh 11:e5481bda1d6a 744 }
jordaahh 11:e5481bda1d6a 745 }
jordaahh 11:e5481bda1d6a 746 }
jordaahh 11:e5481bda1d6a 747 if (lcd.getPixel(i+2,j)) {
jordaahh 19:baa140ab4490 748
jordaahh 18:c93c501ed1c0 749 writeDataToFile(); // write current value to disk
jordaahh 11:e5481bda1d6a 750 clearCells();
jordaahh 11:e5481bda1d6a 751 int m = 1;
jordaahh 11:e5481bda1d6a 752 lcd.printString("game over",1,2);
jordaahh 14:c00b7a943fb5 753 deadTone();
jordaahh 11:e5481bda1d6a 754 clearCells();
jordaahh 11:e5481bda1d6a 755 lcd.printString("Play again?",0,0);
jordaahh 11:e5481bda1d6a 756 lcd.printString("Yes No",0,3);
jordaahh 11:e5481bda1d6a 757
jordaahh 11:e5481bda1d6a 758 while(1) {
jordaahh 11:e5481bda1d6a 759 clearCells();
jordaahh 11:e5481bda1d6a 760 if ((joystick.direction == RIGHT)||(joystick.direction == upRight)||(joystick.direction == downRight)) {
jordaahh 11:e5481bda1d6a 761 m--;
jordaahh 11:e5481bda1d6a 762 }
jordaahh 11:e5481bda1d6a 763 if ((joystick.direction == LEFT)||(joystick.direction == upLeft)||(joystick.direction == downLeft)) {
jordaahh 11:e5481bda1d6a 764 m++;
jordaahh 11:e5481bda1d6a 765 }
jordaahh 11:e5481bda1d6a 766 if(m > 2) {
jordaahh 11:e5481bda1d6a 767 m = 2;
jordaahh 11:e5481bda1d6a 768 }
jordaahh 11:e5481bda1d6a 769 if(m < 0) {
jordaahh 11:e5481bda1d6a 770 m = 0;
jordaahh 11:e5481bda1d6a 771 }
jordaahh 11:e5481bda1d6a 772 switch (m) {
jordaahh 11:e5481bda1d6a 773 case 0 :
jordaahh 11:e5481bda1d6a 774 lcd.printString("YES",0,3);
jordaahh 15:cf59cdffe546 775
jordaahh 11:e5481bda1d6a 776 while(1) {
jordaahh 11:e5481bda1d6a 777 if(button == 1) {
jordaahh 11:e5481bda1d6a 778 clearCells();
jordaahh 11:e5481bda1d6a 779 playGame();
jordaahh 11:e5481bda1d6a 780 break;
jordaahh 11:e5481bda1d6a 781 } else {
jordaahh 11:e5481bda1d6a 782 break;
jordaahh 11:e5481bda1d6a 783 }
jordaahh 11:e5481bda1d6a 784 }
jordaahh 11:e5481bda1d6a 785 break;
jordaahh 11:e5481bda1d6a 786 case 1 :
jordaahh 11:e5481bda1d6a 787 lcd.printString("Play again?",0,0);
jordaahh 11:e5481bda1d6a 788 lcd.printString("Yes No",0,3);
jordaahh 15:cf59cdffe546 789
jordaahh 11:e5481bda1d6a 790 break;
jordaahh 11:e5481bda1d6a 791 case 2 :
jordaahh 11:e5481bda1d6a 792 lcd.printString("NO",70,3);
jordaahh 15:cf59cdffe546 793
jordaahh 11:e5481bda1d6a 794 while(1) {
jordaahh 11:e5481bda1d6a 795 if(button == 1) {
jordaahh 11:e5481bda1d6a 796 clearCells();
jordaahh 11:e5481bda1d6a 797 lcd.printString("Leaving Game",0,2); //enter function to commence here
jordaahh 14:c00b7a943fb5 798 wait(1.0);
jordaahh 11:e5481bda1d6a 799 menu();
jordaahh 11:e5481bda1d6a 800 break;
jordaahh 11:e5481bda1d6a 801 } else {
jordaahh 11:e5481bda1d6a 802 break;
jordaahh 11:e5481bda1d6a 803 }
jordaahh 11:e5481bda1d6a 804 }
jordaahh 11:e5481bda1d6a 805 break;
jordaahh 11:e5481bda1d6a 806 }
jordaahh 11:e5481bda1d6a 807 }
jordaahh 11:e5481bda1d6a 808 }
jordaahh 10:ffac6dc620ff 809 }
jordaahh 10:ffac6dc620ff 810 }
jordaahh 9:7c687ed420de 811 }
jordaahh 10:ffac6dc620ff 812
jordaahh 13:677d398423f7 813 // Brightness and volume menu function
jordaahh 11:e5481bda1d6a 814
jordaahh 13:677d398423f7 815 void BandVMenu()
jordaahh 11:e5481bda1d6a 816 {
jordaahh 11:e5481bda1d6a 817 int t = 0;
jordaahh 11:e5481bda1d6a 818 while(1) {
jordaahh 13:677d398423f7 819 wait(0.2);
jordaahh 11:e5481bda1d6a 820 clearCells();
jordaahh 11:e5481bda1d6a 821 if ((joystick.direction == RIGHT)||(joystick.direction == upRight)||(joystick.direction == downRight)) {
jordaahh 11:e5481bda1d6a 822 t++;
jordaahh 11:e5481bda1d6a 823 }
jordaahh 11:e5481bda1d6a 824 if ((joystick.direction == LEFT)||(joystick.direction == upLeft)||(joystick.direction == downLeft)) {
jordaahh 11:e5481bda1d6a 825 t--;
jordaahh 11:e5481bda1d6a 826 }
jordaahh 11:e5481bda1d6a 827 if(t > 1) {
jordaahh 11:e5481bda1d6a 828 t = 0;
jordaahh 11:e5481bda1d6a 829 }
jordaahh 11:e5481bda1d6a 830 if(t < 0) {
jordaahh 11:e5481bda1d6a 831 t = 1;
jordaahh 11:e5481bda1d6a 832 }
jordaahh 13:677d398423f7 833 if(joystick.direction == DOWN) {
jordaahh 13:677d398423f7 834 clearCells();
jordaahh 13:677d398423f7 835 lcd.printString("Returning",18,2);
jordaahh 13:677d398423f7 836 lcd.printString("to Menu",24,3);
jordaahh 13:677d398423f7 837 wait(0.5);
jordaahh 13:677d398423f7 838 menu();
jordaahh 13:677d398423f7 839 }
jordaahh 11:e5481bda1d6a 840 switch (t) {
jordaahh 11:e5481bda1d6a 841 case 0 :
jordaahh 13:677d398423f7 842 lcd.printString("< Brightness >",0,2);
jordaahh 13:677d398423f7 843 while(1) {
jordaahh 13:677d398423f7 844 if(button == 1) {
jordaahh 13:677d398423f7 845 brightness();
jordaahh 13:677d398423f7 846 break;
jordaahh 13:677d398423f7 847 } else {
jordaahh 13:677d398423f7 848 break;
jordaahh 13:677d398423f7 849 }
jordaahh 13:677d398423f7 850 }
jordaahh 13:677d398423f7 851 break;
jordaahh 13:677d398423f7 852 case 1 :
jordaahh 13:677d398423f7 853 lcd.printString("< Volume >",0,2);
jordaahh 13:677d398423f7 854 while(1) {
jordaahh 13:677d398423f7 855 if(button == 1) {
jordaahh 13:677d398423f7 856 volume();
jordaahh 13:677d398423f7 857 break;
jordaahh 13:677d398423f7 858 } else {
jordaahh 13:677d398423f7 859 break;
jordaahh 13:677d398423f7 860 }
jordaahh 13:677d398423f7 861 }
jordaahh 13:677d398423f7 862 break;
jordaahh 13:677d398423f7 863 }
jordaahh 14:c00b7a943fb5 864 }
jordaahh 13:677d398423f7 865 }
jordaahh 13:677d398423f7 866
jordaahh 13:677d398423f7 867
jordaahh 13:677d398423f7 868 void brightness()
jordaahh 13:677d398423f7 869 {
jordaahh 13:677d398423f7 870 while(1) {
jordaahh 13:677d398423f7 871 wait(0.2);
jordaahh 13:677d398423f7 872 clearCells();
jordaahh 13:677d398423f7 873 if ((joystick.direction == RIGHT)||(joystick.direction == upRight)||(joystick.direction == downRight)) {
jordaahh 13:677d398423f7 874 bright--;
jordaahh 13:677d398423f7 875 }
jordaahh 13:677d398423f7 876 if ((joystick.direction == LEFT)||(joystick.direction == upLeft)||(joystick.direction == downLeft)) {
jordaahh 13:677d398423f7 877 bright++;
jordaahh 13:677d398423f7 878 }
jordaahh 13:677d398423f7 879 if(bright > 3) {
jordaahh 13:677d398423f7 880 bright = 3;
jordaahh 14:c00b7a943fb5 881 }
jordaahh 13:677d398423f7 882 if(bright < -3) {
jordaahh 13:677d398423f7 883 bright = -3;
jordaahh 14:c00b7a943fb5 884 }
jordaahh 13:677d398423f7 885 switch (bright) {
jordaahh 13:677d398423f7 886 case 0 :
jordaahh 13:677d398423f7 887 lcd.printString(" Brightness ",0,2);
jordaahh 13:677d398423f7 888 lcd.printString(" ||||||",0,4);
jordaahh 14:c00b7a943fb5 889 lcd.setBrightness(0.6);
jordaahh 11:e5481bda1d6a 890 while(1) {
jordaahh 11:e5481bda1d6a 891 if(button == 1) {
jordaahh 13:677d398423f7 892 BandVMenu();
jordaahh 13:677d398423f7 893 break;
jordaahh 13:677d398423f7 894 } else {
jordaahh 13:677d398423f7 895 break;
jordaahh 13:677d398423f7 896 }
jordaahh 13:677d398423f7 897 }
jordaahh 13:677d398423f7 898 break;
jordaahh 13:677d398423f7 899 case 1 :
jordaahh 13:677d398423f7 900 lcd.printString(" Brightness ",0,2);
jordaahh 13:677d398423f7 901 lcd.printString(" ||||||||",0,4);
jordaahh 14:c00b7a943fb5 902 lcd.setBrightness(0.8);
jordaahh 13:677d398423f7 903 while(1) {
jordaahh 13:677d398423f7 904 if(button == 1) {
jordaahh 13:677d398423f7 905 BandVMenu();
jordaahh 13:677d398423f7 906 break;
jordaahh 13:677d398423f7 907 } else {
jordaahh 13:677d398423f7 908 break;
jordaahh 13:677d398423f7 909 }
jordaahh 13:677d398423f7 910 }
jordaahh 13:677d398423f7 911 break;
jordaahh 13:677d398423f7 912 case 2 :
jordaahh 13:677d398423f7 913 lcd.printString(" Brightness ",0,2);
jordaahh 13:677d398423f7 914 lcd.printString(" ||||||||||",0,4);
jordaahh 14:c00b7a943fb5 915 lcd.setBrightness(0.9);
jordaahh 13:677d398423f7 916 while(1) {
jordaahh 13:677d398423f7 917 if(button == 1) {
jordaahh 13:677d398423f7 918 BandVMenu();
jordaahh 13:677d398423f7 919 break;
jordaahh 13:677d398423f7 920 } else {
jordaahh 13:677d398423f7 921 break;
jordaahh 13:677d398423f7 922 }
jordaahh 13:677d398423f7 923 }
jordaahh 13:677d398423f7 924 break;
jordaahh 13:677d398423f7 925 case 3 :
jordaahh 13:677d398423f7 926 lcd.printString(" Brightness ",0,2);
jordaahh 13:677d398423f7 927 lcd.printString(" ||||||||||||",0,4);
jordaahh 14:c00b7a943fb5 928 lcd.setBrightness(1);
jordaahh 13:677d398423f7 929 while(1) {
jordaahh 13:677d398423f7 930 if(button == 1) {
jordaahh 13:677d398423f7 931 BandVMenu();
jordaahh 13:677d398423f7 932 break;
jordaahh 13:677d398423f7 933 } else {
jordaahh 13:677d398423f7 934 break;
jordaahh 13:677d398423f7 935 }
jordaahh 13:677d398423f7 936 }
jordaahh 13:677d398423f7 937 break;
jordaahh 13:677d398423f7 938 case -1 :
jordaahh 13:677d398423f7 939 lcd.printString(" Brightness ",0,2);
jordaahh 13:677d398423f7 940 lcd.printString(" ||||",0,4);
jordaahh 14:c00b7a943fb5 941 lcd.setBrightness(0.4);
jordaahh 13:677d398423f7 942 while(1) {
jordaahh 13:677d398423f7 943 if(button == 1) {
jordaahh 13:677d398423f7 944 BandVMenu();
jordaahh 13:677d398423f7 945 break;
jordaahh 13:677d398423f7 946 } else {
jordaahh 13:677d398423f7 947 break;
jordaahh 13:677d398423f7 948 }
jordaahh 13:677d398423f7 949 }
jordaahh 13:677d398423f7 950 break;
jordaahh 13:677d398423f7 951 case -2 :
jordaahh 13:677d398423f7 952 lcd.printString(" Brightness ",0,2);
jordaahh 13:677d398423f7 953 lcd.printString(" ||",0,4);
jordaahh 14:c00b7a943fb5 954 lcd.setBrightness(0.2);
jordaahh 13:677d398423f7 955 while(1) {
jordaahh 13:677d398423f7 956 if(button == 1) {
jordaahh 13:677d398423f7 957 BandVMenu();
jordaahh 11:e5481bda1d6a 958 break;
jordaahh 11:e5481bda1d6a 959 } else {
jordaahh 11:e5481bda1d6a 960 break;
jordaahh 11:e5481bda1d6a 961 }
jordaahh 11:e5481bda1d6a 962 }
jordaahh 11:e5481bda1d6a 963 break;
jordaahh 13:677d398423f7 964 case -3 :
jordaahh 13:677d398423f7 965 lcd.printString(" Brightness ",0,2);
jordaahh 14:c00b7a943fb5 966 lcd.setBrightness(0);
jordaahh 13:677d398423f7 967 while(1) {
jordaahh 13:677d398423f7 968 if(button == 1) {
jordaahh 13:677d398423f7 969 BandVMenu();
jordaahh 13:677d398423f7 970 break;
jordaahh 13:677d398423f7 971 } else {
jordaahh 13:677d398423f7 972 break;
jordaahh 13:677d398423f7 973 }
jordaahh 13:677d398423f7 974 }
jordaahh 13:677d398423f7 975 break;
jordaahh 14:c00b7a943fb5 976 }
jordaahh 14:c00b7a943fb5 977 }
jordaahh 13:677d398423f7 978 }
jordaahh 12:5ab932192a97 979
jordaahh 13:677d398423f7 980 void volume()
jordaahh 11:e5481bda1d6a 981 {
jordaahh 13:677d398423f7 982 while(1) {
jordaahh 13:677d398423f7 983 wait(0.2);
jordaahh 13:677d398423f7 984 clearCells();
jordaahh 13:677d398423f7 985 if ((joystick.direction == RIGHT)||(joystick.direction == upRight)||(joystick.direction == downRight)) {
jordaahh 13:677d398423f7 986 vol--;
jordaahh 13:677d398423f7 987 }
jordaahh 13:677d398423f7 988 if ((joystick.direction == LEFT)||(joystick.direction == upLeft)||(joystick.direction == downLeft)) {
jordaahh 13:677d398423f7 989 vol++;
jordaahh 13:677d398423f7 990 }
jordaahh 13:677d398423f7 991 if(vol > 3) {
jordaahh 13:677d398423f7 992 vol = 3;
jordaahh 14:c00b7a943fb5 993 }
jordaahh 13:677d398423f7 994 if(vol < -3) {
jordaahh 13:677d398423f7 995 vol = -3;
jordaahh 14:c00b7a943fb5 996 }
jordaahh 13:677d398423f7 997 switch (vol) {
jordaahh 13:677d398423f7 998 case 0 :
jordaahh 14:c00b7a943fb5 999 lcd.printString(" Volume ",0,2);
jordaahh 13:677d398423f7 1000 lcd.printString(" ||||||",0,4);
jordaahh 13:677d398423f7 1001 while(1) {
jordaahh 13:677d398423f7 1002 if(button == 1) {
jordaahh 13:677d398423f7 1003 BandVMenu();
jordaahh 13:677d398423f7 1004 break;
jordaahh 13:677d398423f7 1005 } else {
jordaahh 13:677d398423f7 1006 break;
jordaahh 13:677d398423f7 1007 }
jordaahh 13:677d398423f7 1008 }
jordaahh 13:677d398423f7 1009 break;
jordaahh 13:677d398423f7 1010 case 1 :
jordaahh 13:677d398423f7 1011 lcd.printString(" Volume ",0,2);
jordaahh 13:677d398423f7 1012 lcd.printString(" ||||||||",0,4);
jordaahh 13:677d398423f7 1013 while(1) {
jordaahh 13:677d398423f7 1014 if(button == 1) {
jordaahh 13:677d398423f7 1015 BandVMenu();
jordaahh 13:677d398423f7 1016 break;
jordaahh 13:677d398423f7 1017 } else {
jordaahh 13:677d398423f7 1018 break;
jordaahh 13:677d398423f7 1019 }
jordaahh 13:677d398423f7 1020 }
jordaahh 13:677d398423f7 1021 break;
jordaahh 13:677d398423f7 1022 case 2 :
jordaahh 13:677d398423f7 1023 lcd.printString(" Volume ",0,2);
jordaahh 13:677d398423f7 1024 lcd.printString(" ||||||||||",0,4);
jordaahh 13:677d398423f7 1025 while(1) {
jordaahh 13:677d398423f7 1026 if(button == 1) {
jordaahh 13:677d398423f7 1027 BandVMenu();
jordaahh 13:677d398423f7 1028 break;
jordaahh 13:677d398423f7 1029 } else {
jordaahh 13:677d398423f7 1030 break;
jordaahh 13:677d398423f7 1031 }
jordaahh 13:677d398423f7 1032 }
jordaahh 13:677d398423f7 1033 break;
jordaahh 13:677d398423f7 1034 case 3 :
jordaahh 13:677d398423f7 1035 lcd.printString(" Volume ",0,2);
jordaahh 13:677d398423f7 1036 lcd.printString(" ||||||||||||",0,4);
jordaahh 13:677d398423f7 1037 while(1) {
jordaahh 13:677d398423f7 1038 if(button == 1) {
jordaahh 13:677d398423f7 1039 BandVMenu();
jordaahh 13:677d398423f7 1040 break;
jordaahh 13:677d398423f7 1041 } else {
jordaahh 13:677d398423f7 1042 break;
jordaahh 13:677d398423f7 1043 }
jordaahh 13:677d398423f7 1044 }
jordaahh 13:677d398423f7 1045 break;
jordaahh 13:677d398423f7 1046 case -1 :
jordaahh 13:677d398423f7 1047 lcd.printString(" Volume ",0,2);
jordaahh 13:677d398423f7 1048 lcd.printString(" ||||",0,4);
jordaahh 13:677d398423f7 1049 while(1) {
jordaahh 13:677d398423f7 1050 if(button == 1) {
jordaahh 13:677d398423f7 1051 BandVMenu();
jordaahh 13:677d398423f7 1052 break;
jordaahh 13:677d398423f7 1053 } else {
jordaahh 13:677d398423f7 1054 break;
jordaahh 13:677d398423f7 1055 }
jordaahh 13:677d398423f7 1056 }
jordaahh 13:677d398423f7 1057 break;
jordaahh 13:677d398423f7 1058 case -2 :
jordaahh 13:677d398423f7 1059 lcd.printString(" Volume ",0,2);
jordaahh 13:677d398423f7 1060 lcd.printString(" ||",0,4);
jordaahh 13:677d398423f7 1061 while(1) {
jordaahh 13:677d398423f7 1062 if(button == 1) {
jordaahh 13:677d398423f7 1063 BandVMenu();
jordaahh 13:677d398423f7 1064 break;
jordaahh 13:677d398423f7 1065 } else {
jordaahh 13:677d398423f7 1066 break;
jordaahh 13:677d398423f7 1067 }
jordaahh 13:677d398423f7 1068 }
jordaahh 13:677d398423f7 1069 break;
jordaahh 13:677d398423f7 1070 case -3 :
jordaahh 13:677d398423f7 1071 lcd.printString(" Volume ",0,2);
jordaahh 13:677d398423f7 1072 lcd.printString(" MUTE",0,4);
jordaahh 13:677d398423f7 1073 while(1) {
jordaahh 13:677d398423f7 1074 if(button == 1) {
jordaahh 13:677d398423f7 1075 BandVMenu();
jordaahh 13:677d398423f7 1076 break;
jordaahh 13:677d398423f7 1077 } else {
jordaahh 13:677d398423f7 1078 break;
jordaahh 13:677d398423f7 1079 }
jordaahh 13:677d398423f7 1080 }
jordaahh 13:677d398423f7 1081 break;
jordaahh 14:c00b7a943fb5 1082 }
jordaahh 14:c00b7a943fb5 1083 }
jordaahh 14:c00b7a943fb5 1084 }
jordaahh 14:c00b7a943fb5 1085
jordaahh 18:c93c501ed1c0 1086 void writeDataToFile()
jordaahh 14:c00b7a943fb5 1087 {
jordaahh 19:baa140ab4490 1088 FILE *fp = fopen("/local/score.txt", "w"); // open 'score.txt'
jordaahh 16:6723fa6c0f25 1089 // if the file doesn't exist it is created, if it exists, data is appended to the end
jordaahh 19:baa140ab4490 1090 fprintf(fp,"%i",score); // print integer to file
jordaahh 17:f56dd50acf2d 1091 fclose(fp); // close file
jordaahh 18:c93c501ed1c0 1092 }
jordaahh 18:c93c501ed1c0 1093
jordaahh 19:baa140ab4490 1094 void readDataFromFile()
jordaahh 19:baa140ab4490 1095 {
jordaahh 19:baa140ab4490 1096 int score1;
jordaahh 19:baa140ab4490 1097
jordaahh 19:baa140ab4490 1098 FILE *fp2 = fopen("/local/score.txt", "r"); // open 'score.txt'
jordaahh 19:baa140ab4490 1099 fscanf (fp2,"%i",&score1);
jordaahh 17:f56dd50acf2d 1100 fclose(fp2); // close file
jordaahh 19:baa140ab4490 1101
jordaahh 19:baa140ab4490 1102 char Points[14];
jordaahh 19:baa140ab4490 1103 sprintf(Points,"%i",score1);
jordaahh 19:baa140ab4490 1104 lcd.printString(Points,0,0);
jordaahh 13:677d398423f7 1105 }
jordaahh 13:677d398423f7 1106
jordaahh 14:c00b7a943fb5 1107
jordaahh 14:c00b7a943fb5 1108
jordaahh 14:c00b7a943fb5 1109 void tone()
jordaahh 15:cf59cdffe546 1110 {
jordaahh 14:c00b7a943fb5 1111
jordaahh 14:c00b7a943fb5 1112 if(FLAG3==1) {
jordaahh 14:c00b7a943fb5 1113 FLAG3 = 0;
jordaahh 14:c00b7a943fb5 1114 buz.period(1/(frequency[u])); // set PWM period
jordaahh 18:c93c501ed1c0 1115 buz=0.2;
jordaahh 14:c00b7a943fb5 1116 u++;
jordaahh 14:c00b7a943fb5 1117 }
jordaahh 14:c00b7a943fb5 1118 if( u > 30) {
jordaahh 14:c00b7a943fb5 1119 u = 0;
jordaahh 14:c00b7a943fb5 1120 }
jordaahh 11:e5481bda1d6a 1121
jordaahh 14:c00b7a943fb5 1122 }
jordaahh 14:c00b7a943fb5 1123
jordaahh 14:c00b7a943fb5 1124 void deadTone()
jordaahh 14:c00b7a943fb5 1125 {
jordaahh 14:c00b7a943fb5 1126 int l = 0;
jordaahh 14:c00b7a943fb5 1127 while(1) {
jordaahh 14:c00b7a943fb5 1128 if(FLAG3==1) {
jordaahh 14:c00b7a943fb5 1129 FLAG3 = 0;
jordaahh 14:c00b7a943fb5 1130 buz.period(1/(frequency2[l])); // set PWM period
jordaahh 18:c93c501ed1c0 1131 buz=0.2;
jordaahh 14:c00b7a943fb5 1132 l++;
jordaahh 13:677d398423f7 1133 }
jordaahh 14:c00b7a943fb5 1134 if( l > 6) {
jordaahh 14:c00b7a943fb5 1135 break;
jordaahh 14:c00b7a943fb5 1136 }
jordaahh 14:c00b7a943fb5 1137 }
jordaahh 14:c00b7a943fb5 1138 }