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