Ahmed Adamjee
/
SnakeVSBlock
Snake vs Block Game to be run upon K64F.
MenuClasses/Stats/Stats.cpp
- Committer:
- AhmedPlaymaker
- Date:
- 2019-04-26
- Revision:
- 49:441c32f6603e
- Parent:
- 43:233f93860d08
- Child:
- 50:3cf9a94a264e
File content as of revision 49:441c32f6603e:
#include "Stats.h" Stats::Stats() { } Stats::~Stats() { } FILE *fp; // this is the file pointer //serial.baud(115200); // full-speed! void Stats::StatsDisplay(N5110 &lcd, Gamepad &pad) { lcd.clear(); wait(0.2); pad.init(); while (pad.check_event(Gamepad::BACK_PRESSED) == false) { //Change this to if button pressed. lcd.printString("Highest Level",3,1); sprintf(bufferlevel,"%d",_stored_top_level); lcd.printString(bufferlevel,38,3); lcd.refresh(); } lcd.clear(); pad.tone(1000.0,0.1); /////////////////////// Deleting file //////////////////////// // comment this line out if I don't want to delete the file! //delete_file("/sd/highestlevel.txt"); } void Stats::write(int level, SDFileSystem &sd) { ////////////////////// writing to file while reading previous state ////////////////////////// // open file for writing ('w') - creates file if it doesn't exist and overwrites // if it does. If you wish to add a score onto a list, then you can // append instead 'a'. Stats::read(sd); fp = fopen("/sd/highestlevel.txt", "w"); _current_level = level; if(_current_level == 0) { _current_level = 1; } if (_stored_top_level < _current_level) { _top_level = _current_level; } else { _top_level = _stored_top_level; } if (fp == NULL) { // if it can't open the file then print error message //serial.printf("Error! Unable to open file!\n"); } else { // opened file so can write //serial.printf("Writing to file...."); fprintf(fp, "%d",_top_level); // ensure data type matches //serial.printf("Done.\n"); fclose(fp); // ensure you close the file after writing } } void Stats::read(SDFileSystem &sd) { ////////////////////// reading from previous state ////////////////////////// // now open file for reading fp = fopen("/sd/highestlevel.txt", "r"); _stored_top_level = 1; // level 1 if (fp == NULL) { // if it can't open the file then print error message //serial.printf("Error! Unable to open file!\n"); } else { // opened file so can write fscanf(fp, "%d",&_stored_top_level); // ensure data type matches - note address operator (&) //serial.printf("Read %d from file.\n",stored_top_level); fclose(fp); // ensure you close the file after reading } } void Stats::delete_file(char filename[]) { //serial.printf("Deleting file '%s'...",filename); FILE *fp = fopen(filename, "r"); // try and open file if (fp != NULL) { // if it does open... fclose(fp); // close it remove(filename); // and then delete //serial.printf("Done!\n"); } // if we can't open it, it doesn't exist and so we can't delete it }