From b3b30e3757ca4f2b6df80222115c4897995cc6eb Mon Sep 17 00:00:00 2001
From: Josh Alejandro <jalejand@myune.edu.au>
Date: Wed, 20 Sep 2023 19:20:09 +1000
Subject: [PATCH] ScoringSystem will now load from highscore text file

---
 .../main/java/brickbreaker/ScoringSystem.java | 33 +++++++++++++++++--
 1 file changed, 31 insertions(+), 2 deletions(-)

diff --git a/app/src/main/java/brickbreaker/ScoringSystem.java b/app/src/main/java/brickbreaker/ScoringSystem.java
index d55638f..39d164d 100644
--- a/app/src/main/java/brickbreaker/ScoringSystem.java
+++ b/app/src/main/java/brickbreaker/ScoringSystem.java
@@ -1,11 +1,39 @@
+import java.io.BufferedReader;
+import java.io.FileReader;
+import java.io.FileWriter;
+import java.io.IOException;
+
+
 public class ScoringSystem {
     private int score;          // Current Score
     private int highScore;      // Highest Score
     private static final int POINTS = 1; // Point Value
 
+    private static final String HIGHSCORE_FILE = "src/main/resources/highscore.txt";
+
     public ScoringSystem() {
         this.score = 0;
-        this.highScore = 0;
+        this.highScore = loadHighScore();
+    }
+
+    private int loadHighScore() {
+        try (BufferedReader reader = new BufferedReader(new FileReader(HIGHSCORE_FILE))) {
+            String line = reader.readLine();
+            if (line != null) {
+                return Integer.parseInt(line.trim());
+            }
+        } catch (IOException e) {
+            System.err.println("Loading Error: " + e.getMessage());
+        }
+        return 0;
+    }
+
+    private void saveHighScore(int newHighScore) {
+        try (FileWriter writer = new FileWriter(HIGHSCORE_FILE)) {
+            writer.write(Integer.toString(newHighScore));
+        } catch (IOException e) {
+            System.err.println("Saving Error: " + e.getMessage());
+        }
     }
 
     // Add point to each broken brick
@@ -14,10 +42,11 @@ public class ScoringSystem {
         checkForNewHighScore();
     }
 
-    // Compare Current Score and highest score
+    // Compare Current Score and Hgihest Score
     private void checkForNewHighScore() {
         if (score > highScore) {
             highScore = score;
+            saveHighScore(highScore);
         }
     }
 
-- 
GitLab