diff --git a/app/src/main/java/brickbreaker/ScoringSystem.java b/app/src/main/java/brickbreaker/ScoringSystem.java new file mode 100644 index 0000000000000000000000000000000000000000..39d164dfa2e0ece2e6832d47f5e9cd4bb91b675f --- /dev/null +++ b/app/src/main/java/brickbreaker/ScoringSystem.java @@ -0,0 +1,68 @@ +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 = 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 + public void brickBroken() { + score += POINTS; + checkForNewHighScore(); + } + + // Compare Current Score and Hgihest Score + private void checkForNewHighScore() { + if (score > highScore) { + highScore = score; + saveHighScore(highScore); + } + } + + // Reset score + public void resetScore() { + score = 0; + } + + // Getters + public int getScore() { + return score; + } + + public int getHighScore() { + return highScore; + } +} + + diff --git a/app/src/main/resources/highscore.txt b/app/src/main/resources/highscore.txt new file mode 100644 index 0000000000000000000000000000000000000000..573541ac9702dd3969c9bc859d2b91ec1f7e6e56 --- /dev/null +++ b/app/src/main/resources/highscore.txt @@ -0,0 +1 @@ +0