diff --git a/.gitignore b/.gitignore
index 4b50e06..82c1cf5 100644
--- a/.gitignore
+++ b/.gitignore
@@ -2,4 +2,8 @@
*.ser
# Object Data
-*.o
\ No newline at end of file
+*.o
+
+#sonstiges
+.idea
+out
\ No newline at end of file
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/Enums/Geschlecht.java b/Domain/Enums/Geschlecht.java
index 974fe71..7fccaae 100644
--- a/Domain/Enums/Geschlecht.java
+++ b/Domain/Enums/Geschlecht.java
@@ -6,7 +6,9 @@ written on: 05 / 10 / 2023 at: 23:31
*/
package Domain.Enums;
-public enum Geschlecht {
+import java.io.Serializable;
+
+public enum Geschlecht implements Serializable {
M, W, D, KI;
}
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..5a2572d
--- /dev/null
+++ b/Main.java
@@ -0,0 +1,43 @@
+import Facade.Spiel;
+import Infrastructure.Persistenz;
+import UI.SpielCLI;
+
+import java.io.IOException;
+import java.sql.SQLOutput;
+
+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..63e89e1 100644
--- a/UI/SpielCLI.java
+++ b/UI/SpielCLI.java
@@ -7,8 +7,51 @@ written on: 05 / 10 / 2023 at: 23:25
package UI;
+import Facade.Spiel;
+
+import java.sql.SQLOutput;
+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
diff --git a/WIAZRD_DOP_PR2.iml b/WIAZRD_DOP_PR2.iml
new file mode 100644
index 0000000..b107a2d
--- /dev/null
+++ b/WIAZRD_DOP_PR2.iml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/out/production/WIAZRD_DOP_PR2/.gitignore b/out/production/WIAZRD_DOP_PR2/.gitignore
new file mode 100644
index 0000000..4b50e06
--- /dev/null
+++ b/out/production/WIAZRD_DOP_PR2/.gitignore
@@ -0,0 +1,5 @@
+# Serialized Data
+*.ser
+
+# Object Data
+*.o
\ No newline at end of file
diff --git a/out/production/WIAZRD_DOP_PR2/.idea/.gitignore b/out/production/WIAZRD_DOP_PR2/.idea/.gitignore
new file mode 100644
index 0000000..13566b8
--- /dev/null
+++ b/out/production/WIAZRD_DOP_PR2/.idea/.gitignore
@@ -0,0 +1,8 @@
+# Default ignored files
+/shelf/
+/workspace.xml
+# Editor-based HTTP Client requests
+/httpRequests/
+# Datasource local storage ignored files
+/dataSources/
+/dataSources.local.xml
diff --git a/out/production/WIAZRD_DOP_PR2/.idea/codeStyles/Project.xml b/out/production/WIAZRD_DOP_PR2/.idea/codeStyles/Project.xml
new file mode 100644
index 0000000..919ce1f
--- /dev/null
+++ b/out/production/WIAZRD_DOP_PR2/.idea/codeStyles/Project.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/out/production/WIAZRD_DOP_PR2/.idea/codeStyles/codeStyleConfig.xml b/out/production/WIAZRD_DOP_PR2/.idea/codeStyles/codeStyleConfig.xml
new file mode 100644
index 0000000..a55e7a1
--- /dev/null
+++ b/out/production/WIAZRD_DOP_PR2/.idea/codeStyles/codeStyleConfig.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/out/production/WIAZRD_DOP_PR2/.idea/misc.xml b/out/production/WIAZRD_DOP_PR2/.idea/misc.xml
new file mode 100644
index 0000000..53037ed
--- /dev/null
+++ b/out/production/WIAZRD_DOP_PR2/.idea/misc.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/out/production/WIAZRD_DOP_PR2/.idea/modules.xml b/out/production/WIAZRD_DOP_PR2/.idea/modules.xml
new file mode 100644
index 0000000..08d785e
--- /dev/null
+++ b/out/production/WIAZRD_DOP_PR2/.idea/modules.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/out/production/WIAZRD_DOP_PR2/.idea/vcs.xml b/out/production/WIAZRD_DOP_PR2/.idea/vcs.xml
new file mode 100644
index 0000000..35eb1dd
--- /dev/null
+++ b/out/production/WIAZRD_DOP_PR2/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/out/production/WIAZRD_DOP_PR2/Domain/Block.class b/out/production/WIAZRD_DOP_PR2/Domain/Block.class
new file mode 100644
index 0000000..ff4ecf3
Binary files /dev/null and b/out/production/WIAZRD_DOP_PR2/Domain/Block.class differ
diff --git a/out/production/WIAZRD_DOP_PR2/Domain/Blockeintrag.class b/out/production/WIAZRD_DOP_PR2/Domain/Blockeintrag.class
new file mode 100644
index 0000000..89140ad
Binary files /dev/null and b/out/production/WIAZRD_DOP_PR2/Domain/Blockeintrag.class differ
diff --git a/out/production/WIAZRD_DOP_PR2/Domain/Blockzeile.class b/out/production/WIAZRD_DOP_PR2/Domain/Blockzeile.class
new file mode 100644
index 0000000..cfab292
Binary files /dev/null and b/out/production/WIAZRD_DOP_PR2/Domain/Blockzeile.class differ
diff --git a/out/production/WIAZRD_DOP_PR2/Domain/Enums/Geschlecht.class b/out/production/WIAZRD_DOP_PR2/Domain/Enums/Geschlecht.class
new file mode 100644
index 0000000..58dd183
Binary files /dev/null and b/out/production/WIAZRD_DOP_PR2/Domain/Enums/Geschlecht.class differ
diff --git a/out/production/WIAZRD_DOP_PR2/Domain/Enums/Kartenfarbe.class b/out/production/WIAZRD_DOP_PR2/Domain/Enums/Kartenfarbe.class
new file mode 100644
index 0000000..16faa6a
Binary files /dev/null and b/out/production/WIAZRD_DOP_PR2/Domain/Enums/Kartenfarbe.class differ
diff --git a/out/production/WIAZRD_DOP_PR2/Domain/Karten/Karte.class b/out/production/WIAZRD_DOP_PR2/Domain/Karten/Karte.class
new file mode 100644
index 0000000..dab78d9
Binary files /dev/null and b/out/production/WIAZRD_DOP_PR2/Domain/Karten/Karte.class differ
diff --git a/out/production/WIAZRD_DOP_PR2/Domain/Karten/Magierkarte.class b/out/production/WIAZRD_DOP_PR2/Domain/Karten/Magierkarte.class
new file mode 100644
index 0000000..dcda069
Binary files /dev/null and b/out/production/WIAZRD_DOP_PR2/Domain/Karten/Magierkarte.class differ
diff --git a/out/production/WIAZRD_DOP_PR2/Domain/Karten/Narrenkarte.class b/out/production/WIAZRD_DOP_PR2/Domain/Karten/Narrenkarte.class
new file mode 100644
index 0000000..7950aac
Binary files /dev/null and b/out/production/WIAZRD_DOP_PR2/Domain/Karten/Narrenkarte.class differ
diff --git a/out/production/WIAZRD_DOP_PR2/Domain/Karten/Zahlenkarte.class b/out/production/WIAZRD_DOP_PR2/Domain/Karten/Zahlenkarte.class
new file mode 100644
index 0000000..a72234d
Binary files /dev/null and b/out/production/WIAZRD_DOP_PR2/Domain/Karten/Zahlenkarte.class differ
diff --git a/out/production/WIAZRD_DOP_PR2/Domain/Kartenstapel.class b/out/production/WIAZRD_DOP_PR2/Domain/Kartenstapel.class
new file mode 100644
index 0000000..7ad92e5
Binary files /dev/null and b/out/production/WIAZRD_DOP_PR2/Domain/Kartenstapel.class differ
diff --git a/out/production/WIAZRD_DOP_PR2/Domain/Spieler.class b/out/production/WIAZRD_DOP_PR2/Domain/Spieler.class
new file mode 100644
index 0000000..f1d77eb
Binary files /dev/null and b/out/production/WIAZRD_DOP_PR2/Domain/Spieler.class differ
diff --git a/out/production/WIAZRD_DOP_PR2/Facade/Spiel.class b/out/production/WIAZRD_DOP_PR2/Facade/Spiel.class
new file mode 100644
index 0000000..df88679
Binary files /dev/null and b/out/production/WIAZRD_DOP_PR2/Facade/Spiel.class differ
diff --git a/out/production/WIAZRD_DOP_PR2/Infrastructure/Persistenz.class b/out/production/WIAZRD_DOP_PR2/Infrastructure/Persistenz.class
new file mode 100644
index 0000000..a424bb0
Binary files /dev/null and b/out/production/WIAZRD_DOP_PR2/Infrastructure/Persistenz.class differ
diff --git a/out/production/WIAZRD_DOP_PR2/Main.class b/out/production/WIAZRD_DOP_PR2/Main.class
new file mode 100644
index 0000000..939fb1b
Binary files /dev/null and b/out/production/WIAZRD_DOP_PR2/Main.class differ
diff --git a/out/production/WIAZRD_DOP_PR2/PR2L - U01.pdf b/out/production/WIAZRD_DOP_PR2/PR2L - U01.pdf
new file mode 100644
index 0000000..dbd6dcd
Binary files /dev/null and b/out/production/WIAZRD_DOP_PR2/PR2L - U01.pdf differ
diff --git a/out/production/WIAZRD_DOP_PR2/README.md b/out/production/WIAZRD_DOP_PR2/README.md
new file mode 100644
index 0000000..43b0ec2
--- /dev/null
+++ b/out/production/WIAZRD_DOP_PR2/README.md
@@ -0,0 +1,48 @@
+# Wizard PR2 Prof. Dopatka
+
+Gruppe Studienleistung bereits vorhanden
+
+## Teilnehmer
+
+- Kai Sellman
+- Odin Selimovic
+- Mohammad Hawrami
+- Philipp Kotte
+
+## Dopatka Regeln wie Klassen anzulegen sind
+
+1. statische Konstante
+2. statische Attribute(zB. zähler)
+3. Attribute jedes Objektes
+4. Konstruktoren (default und spezifische)
+5. statische Methoden
+6. Getter und Setter
+7. @Overrides
+8. öffentliche Methodes
+9. Hilfsmethoden (privat)
+
+## Für das Arbeiten mit geschützten Mainbranch
+
+Wenn Änderungen durchgeführt werden müssen, kann dieses nicht direkt auf dem main-Branch gepusht werden sondern muss mit einem Separatem Branch und Pull-Request durchgeführt werden.
+Die Schritte um einen Feature-Branch zu erstellen sind folgende:
+
+#### 1. Erstellen eines neuen Branch auf Basis des aktuellen main:
+
+`git checkout -b `
+
+> Switchen zwischen den branches:
+> `git checkout `
+
+Hier wird das Feature Ausgearbeitet und fertiggestellt.
+
+#### 2. Aktualisieren mit Mainbranch
+
+Besonders wenn eine Weile an dem Feature Branch gearbeitet wurde, können bereits Änderungen auf Main durchgeführt worde sein. Daher wird vor dem Pull Request der Feature-Branch mit dem Main-Branch gemerget.
+
+> Mergen des Main-Branch in den Feature Branch
+> `git pull origin main`
+
+#### 3. Pull Request
+
+Danach damit wir alle die Changes mitbekommen muss ein Pull Request auf Gitea gestellt werden.
+Im zuge dessen findet eine Code Review von einem beliebigen Teammitglied statt, damit dieser frei gegeben werden kann.
diff --git a/out/production/WIAZRD_DOP_PR2/UI/SpielCLI.class b/out/production/WIAZRD_DOP_PR2/UI/SpielCLI.class
new file mode 100644
index 0000000..e231821
Binary files /dev/null and b/out/production/WIAZRD_DOP_PR2/UI/SpielCLI.class differ
diff --git a/out/production/WIAZRD_DOP_PR2/WIAZRD_DOP_PR2.iml b/out/production/WIAZRD_DOP_PR2/WIAZRD_DOP_PR2.iml
new file mode 100644
index 0000000..b107a2d
--- /dev/null
+++ b/out/production/WIAZRD_DOP_PR2/WIAZRD_DOP_PR2.iml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file