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