Spiel_feat persistenz SpeilCLI und weiteres #16

Merged
2211945 merged 12 commits from Spiel_feat into main 2023-10-10 18:08:26 +02:00
10 changed files with 147 additions and 5 deletions

View File

@ -0,0 +1,7 @@
<component name="ProjectCodeStyleConfiguration">
<code_scheme name="Project" version="173">
<ScalaCodeStyleSettings>
<option name="MULTILINE_STRING_CLOSING_QUOTES_ON_NEW_LINE" value="true" />
</ScalaCodeStyleSettings>
</code_scheme>
</component>

View File

@ -0,0 +1,5 @@
<component name="ProjectCodeStyleConfiguration">
<state>
<option name="PREFERRED_PROJECT_CODE_STYLE" value="Default" />
</state>
</component>

6
.idea/misc.xml 100644
View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectRootManager" version="2" project-jdk-name="20 (2)" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/out" />
</component>
</project>

View File

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/WIAZRD_DOP_PR2.iml" filepath="$PROJECT_DIR$/WIAZRD_DOP_PR2.iml" />
</modules>
</component>
</project>

6
.idea/vcs.xml 100644
View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="" vcs="Git" />
</component>
</project>

View File

@ -8,7 +8,9 @@ package Domain;
import Domain.Enums.Geschlecht; import Domain.Enums.Geschlecht;
public class Spieler { import java.io.Serializable;
public class Spieler implements Serializable {
// Statische Konstanten // Statische Konstanten

View File

@ -6,12 +6,13 @@ written on: 05 / 10 / 2023 at: 23:25
*/ */
package Facade; package Facade;
import java.io.Serializable;
import java.util.HashMap; import java.util.HashMap;
import Domain.Spieler; import Domain.Spieler;
import Domain.Enums.Geschlecht; import Domain.Enums.Geschlecht;
public class Spiel { public class Spiel implements Serializable {
private boolean istGestartet; private boolean istGestartet;
private boolean istBeendet; private boolean istBeendet;

View File

@ -6,6 +6,32 @@ written on: 05 / 10 / 2023 at: 23:25
*/ */
package Infrastructure; package Infrastructure;
import Facade.Spiel;
import java.io.*;
public class Persistenz { 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;
}
} }

42
Main.java 100644
View File

@ -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!");
}
}
}

View File

@ -7,8 +7,47 @@ written on: 05 / 10 / 2023 at: 23:25
package UI; package UI;
import Facade.Spiel;
import java.util.Scanner;
public class SpielCLI { public class SpielCLI {
int x = 12;
Scanner sc = new Scanner(System.in);
//Kommentar 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!");
}
} }