From f6cc17002c9d36f5f996f2d97ffd99afe3a54bf3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Leon=20L=C3=B6hle?= <3010261@hs-mannheim.de> Date: Mon, 6 Jan 2025 18:15:24 +0100 Subject: [PATCH] Erstellung einer Facade --- .../java/de/deversmann/facade/Facade.java | 50 +++++++++++++++++++ 1 file changed, 50 insertions(+) diff --git a/src/main/java/de/deversmann/facade/Facade.java b/src/main/java/de/deversmann/facade/Facade.java index 52e1e66..8562fc9 100644 --- a/src/main/java/de/deversmann/facade/Facade.java +++ b/src/main/java/de/deversmann/facade/Facade.java @@ -1,4 +1,54 @@ package de.deversmann.facade; +import java.io.IOException; +import java.util.List; + public class Facade { + private final CSVReader csvReader; + private final HighscoreManager_2_0 highscoreManager; + private final Zeiterfassung_2_0 zeiterfassung; + + // Hier speichern wir das aktuell geladene Puzzle (mit Lösung) + private PuzzleData currentPuzzleData; + + public Facade() { + this.csvReader = new CSVReader(); + this.highscoreManager = new HighscoreManager_2_0(); + this.zeiterfassung = new Zeiterfassung_2_0(); + } + + public void ladeSpielfeld(String csvPfad) throws IOException { + // Liest Puzzle + Lösung aus der CSV + this.currentPuzzleData = csvReader.readPuzzleWithSolution(csvPfad); + } + + public int[][] getAktuellesPuzzle() { + return (currentPuzzleData != null) + ? currentPuzzleData.getPuzzle() + : null; + } + + public List getLoesungsKoordinaten() { + return (currentPuzzleData != null) + ? currentPuzzleData.getSolutionCoordinates() + : null; + } + + public void startZeiterfassung() { + zeiterfassung.start(); + } + + public long stopZeiterfassung() { + zeiterfassung.stop(); + return zeiterfassung.getElapsedTimeInSeconds(); + } + + public void addHighscore(int score) { + highscoreManager.addHighscore(score); + } + + public List getAllHighscores() { + return highscoreManager.getHighscores(); + } + }