Ben Evans / Mbed 2 deprecated Defender_Game

Dependencies:   mbed

Revision:
67:a2984682d641
Parent:
64:e9dfc35a1738
Child:
68:bb1650c657ef
--- a/SavedGames/SavedGames.cpp	Thu May 21 17:37:15 2020 +0000
+++ b/SavedGames/SavedGames.cpp	Thu May 21 20:23:24 2020 +0000
@@ -20,10 +20,65 @@
     
 }
 
-void SavedGames::init(SDFileSystem &sd,N5110 &lcd){
+bool SavedGames::save_test(Direction d_,SDFileSystem &sd, N5110 &lcd){
+    
+    // Objects reqired for test 
+    
+    printf("Data save = %d  : ",d_);
+    
+    //Define input data object and set values
+    SavedGamesData input_data;
+    input_data.score = 0;
+    input_data.lives = 3;
+    input_data.smart_bombs = 4;
+    input_data.alien_number = 5;
+
+    //change the save file
+    saved_games_scroll(d_);
+    
+    add_saved_data(sd, input_data, lcd); 
+    
+    // Deffine outut data object
+    SavedGamesData output_data;
+    
+    output_data = read_saved_data(sd, lcd);   
+    
+    // Checks if the input and output are equal
+    if (output_data.score == input_data.score && 
+    output_data.lives == input_data.lives &&
+    output_data.smart_bombs == input_data.smart_bombs &&
+    output_data.alien_number == input_data.alien_number ) {
+        printf ( "Passed!\n");
+        return true;
+    } else {
+        printf ( "Failed!\n");
+        return false;
+    }
+}
+
+void SavedGames::run_save_test(SDFileSystem &sd, N5110 &lcd){
+    printf ("\nTesting  save_test() \n\n");
+    int passed_counter = 0;
+
+    // Runs test with all differnt possible inputs
+    if (save_test(CENTRE, sd, lcd)) passed_counter++;
+    if (save_test(N, sd, lcd)) passed_counter++;
+    if (save_test(NE, sd, lcd)) passed_counter++;
+    if (save_test(E, sd, lcd)) passed_counter++;
+    if (save_test(SE, sd, lcd)) passed_counter++;
+    if (save_test(S, sd, lcd)) passed_counter++;
+    if (save_test(SW, sd, lcd)) passed_counter++;
+    if (save_test(W, sd, lcd)) passed_counter++;
+    if (save_test(NW, sd, lcd)) passed_counter++;
+       
+    // prints results
+    printf ("\n save_test passed %d tests out of 9\n\n\n",
+    passed_counter);
+}
+
+void SavedGames::init(){
     error_ = false;
-    check_sd_present(sd,lcd);
-    display_data_number_ = 1;  
+    display_data_number_ = 1; 
 }
 
 void SavedGames::check_sd_present(SDFileSystem &sd, N5110 &lcd){
@@ -60,6 +115,7 @@
 
 void SavedGames::add_saved_data(SDFileSystem &sd,SavedGamesData data,
  N5110 &lcd){
+    check_sd_present(sd,lcd);
     FILE *fp;
     
     //opens correct save file 
@@ -91,6 +147,8 @@
 }
 
 SavedGamesData SavedGames::read_saved_data(SDFileSystem &sd, N5110 &lcd){
+    check_sd_present(sd,lcd);
+    
     FILE *fp;
     SavedGamesData data;
     
@@ -99,8 +157,8 @@
         fp = fopen("/sd/SavedGamesOne.csv", "r");
         //printf ("open save1\n");
     }else if (display_data_number_ == 2){
-        //fp = fopen("/sd/SavedGamesTwo.csv", "r");
-        printf ("open save2\n");
+        fp = fopen("/sd/SavedGamesTwo.csv", "r");
+        //printf ("open save2\n");
     }else{
         fp = fopen("/sd/SavedGamesThree.csv", "r");
        // printf ("open save2\n");