diff --git a/.idea/codeStyles/Project.xml b/.idea/codeStyles/Project.xml new file mode 100644 index 0000000..919ce1f --- /dev/null +++ b/.idea/codeStyles/Project.xml @@ -0,0 +1,7 @@ + + + + + + \ No newline at end of file diff --git a/.idea/codeStyles/codeStyleConfig.xml b/.idea/codeStyles/codeStyleConfig.xml new file mode 100644 index 0000000..a55e7a1 --- /dev/null +++ b/.idea/codeStyles/codeStyleConfig.xml @@ -0,0 +1,5 @@ + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..53037ed --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..08d785e --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..35eb1dd --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/Domain/Spieler.java b/Domain/Spieler.java index 382bd15..06fa35e 100644 --- a/Domain/Spieler.java +++ b/Domain/Spieler.java @@ -8,7 +8,9 @@ package Domain; import Domain.Enums.Geschlecht; -public class Spieler { +import java.io.Serializable; + +public class Spieler implements Serializable { // Statische Konstanten diff --git a/Facade/Spiel.java b/Facade/Spiel.java index a6b1211..3248210 100644 --- a/Facade/Spiel.java +++ b/Facade/Spiel.java @@ -6,12 +6,13 @@ written on: 05 / 10 / 2023 at: 23:25 */ package Facade; +import java.io.Serializable; import java.util.HashMap; import Domain.Spieler; import Domain.Enums.Geschlecht; -public class Spiel { +public class Spiel implements Serializable { private boolean istGestartet; private boolean istBeendet; diff --git a/Infrastructure/Persistenz.java b/Infrastructure/Persistenz.java index ca38033..087cc3d 100644 --- a/Infrastructure/Persistenz.java +++ b/Infrastructure/Persistenz.java @@ -6,6 +6,32 @@ written on: 05 / 10 / 2023 at: 23:25 */ package Infrastructure; +import Facade.Spiel; + +import java.io.*; + public class Persistenz { + final static String FILE_NAME = "WIZARD_DATA_"; + + public static boolean sindDatenVorhanden(String name){ + File f = new File(FILE_NAME + name + ".ser"); + if(f.exists()){ + return true; + } + return false; + } + + public static void speichereDaten(String name, Spiel spiel) throws IOException { + ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(FILE_NAME + name + ".ser")); + oos.writeObject(spiel); + oos.close(); + } + + public static Object ladeDaten(String name) throws IOException, ClassNotFoundException { + ObjectInputStream ois = new ObjectInputStream(new FileInputStream(FILE_NAME + name + ".ser")); + Object spiel = ois.readObject(); + ois.close(); + return spiel; + } } diff --git a/Main.java b/Main.java new file mode 100644 index 0000000..856a560 --- /dev/null +++ b/Main.java @@ -0,0 +1,42 @@ +import Facade.Spiel; +import Infrastructure.Persistenz; +import UI.SpielCLI; + +import java.io.IOException; + +public class Main { + public static void main(String[] args) { + String name = "Wizard"; + Spiel spiel = null; + + if (Persistenz.sindDatenVorhanden(name)) { + try { + System.out.println("Lade daten"); + spiel = (Spiel) Persistenz.ladeDaten(name); + } catch (IOException e) { + System.out.println("Konnte file nicht laden."); + System.out.println(e.getLocalizedMessage()); + + } catch (ClassNotFoundException cnfe) { + System.out.println("Konnte file nicht laden."); + System.out.println(cnfe.getLocalizedMessage()); + } finally { + if (spiel == null) { + System.out.println("Initialisiere neues Spiel"); + spiel = new Spiel(); + } + } + + } else { + spiel = new Spiel(); + } + + new SpielCLI(spiel); + + try { + Persistenz.speichereDaten(name, spiel); + } catch (IOException e) { + System.out.println("Konnte Daten nicht speicher!"); + } + } +} diff --git a/UI/SpielCLI.java b/UI/SpielCLI.java index 70af554..0052481 100644 --- a/UI/SpielCLI.java +++ b/UI/SpielCLI.java @@ -7,8 +7,47 @@ written on: 05 / 10 / 2023 at: 23:25 package UI; +import Facade.Spiel; + +import java.util.Scanner; + public class SpielCLI { - int x = 12; - - //Kommentar + + Scanner sc = new Scanner(System.in); + private Spiel spiel; + + public SpielCLI(Spiel spiel) { + this.spiel = spiel; + hauptmenue(); + } + + public void hauptmenue() { + mainloop: while (true) { + System.out.println("Hallo Wanderer"); + System.out.println("Was sillst du tun"); + System.out.println("--------Hauptmenü--------"); + System.out.println("-1- Spiel starten"); + System.out.println("-2- Exit"); + + int input = 0; + + try { + input = Integer.parseInt(sc.nextLine()); + } catch (NumberFormatException e) { + System.out.println("Diese eingabe ist ungültig."); + } + + switch (input) { + case 1: + System.out.println("Noch nicht implementiert."); + break; + case 2: + break mainloop; + case 0: + System.out.println("Diese eingabe ist nicht vergeben."); + } + } + System.out.println("auf wiedersehen!"); + } + } \ No newline at end of file