2023-10-05 23:32:29 +02:00
|
|
|
/*
|
|
|
|
============================================================
|
|
|
|
This is the "SpielCLI" file from Author: Philipp Kotte
|
|
|
|
written on: 05 / 10 / 2023 at: 23:25
|
|
|
|
============================================================
|
|
|
|
*/
|
|
|
|
|
|
|
|
package UI;
|
|
|
|
|
2023-10-10 17:44:25 +02:00
|
|
|
import Facade.Spiel;
|
2023-10-14 19:15:04 +02:00
|
|
|
import Domain.Spieler;
|
|
|
|
import Domain.Enums.Geschlecht;
|
2023-10-19 16:44:03 +02:00
|
|
|
import Domain.Exceptions.EmptyListException;
|
2023-11-07 15:48:15 +01:00
|
|
|
import Domain.Exceptions.SpielNotFoundException;
|
2023-10-19 16:44:03 +02:00
|
|
|
import Domain.Exceptions.SpielerNotFoundException;
|
2023-10-10 17:44:25 +02:00
|
|
|
|
|
|
|
import java.util.Scanner;
|
|
|
|
|
2023-10-10 15:42:39 +02:00
|
|
|
public class SpielCLI {
|
2023-10-10 17:44:25 +02:00
|
|
|
|
2023-10-19 16:44:03 +02:00
|
|
|
private static final String ANSI_RESET = "\u001B[0m";
|
|
|
|
private static final String ANSI_GREEN = "\u001B[32m";
|
|
|
|
private static final String ANSI_RED = "\u001B[31m";
|
|
|
|
public static final String ANSI_BLUE = "\u001B[34m";
|
|
|
|
|
2023-10-10 17:44:25 +02:00
|
|
|
Scanner sc = new Scanner(System.in);
|
|
|
|
private Spiel spiel;
|
2023-10-10 17:54:22 +02:00
|
|
|
|
2023-11-07 15:48:15 +01:00
|
|
|
public SpielCLI(Spiel spiel) throws SpielNotFoundException {
|
2023-10-10 17:44:25 +02:00
|
|
|
this.spiel = spiel;
|
|
|
|
hauptmenue();
|
|
|
|
}
|
|
|
|
|
2023-11-07 15:48:15 +01:00
|
|
|
public void hauptmenue() throws SpielNotFoundException {
|
2023-10-14 19:15:04 +02:00
|
|
|
System.out.println("Hallo Wanderer");
|
2023-10-10 17:54:22 +02:00
|
|
|
mainloop: while (true) {
|
2023-10-19 16:44:03 +02:00
|
|
|
print("");
|
|
|
|
print("--------Hauptmenü--------");
|
|
|
|
print(ANSI_BLUE + "-1-" + ANSI_RESET + " Spiel starten");
|
|
|
|
print(ANSI_BLUE + "-2-" + ANSI_RESET + " Spieler hinzufügen");
|
|
|
|
print(ANSI_BLUE + "-3-" + ANSI_RESET + " Spiel to String");
|
|
|
|
print(ANSI_BLUE + "-4-" + ANSI_RESET + " Spieler löschen");
|
|
|
|
print(ANSI_BLUE + "-5-" + ANSI_RESET + " Exit");
|
2023-10-10 17:54:22 +02:00
|
|
|
|
|
|
|
int input = 0;
|
|
|
|
|
|
|
|
try {
|
|
|
|
input = Integer.parseInt(sc.nextLine());
|
|
|
|
} catch (NumberFormatException e) {
|
|
|
|
System.out.println("Diese eingabe ist ungültig.");
|
|
|
|
}
|
2023-10-10 17:44:25 +02:00
|
|
|
|
2023-10-10 17:54:22 +02:00
|
|
|
switch (input) {
|
|
|
|
case 1:
|
2023-10-19 16:44:03 +02:00
|
|
|
spielStarten();
|
2023-10-10 17:54:22 +02:00
|
|
|
break;
|
|
|
|
case 2:
|
2023-10-19 16:44:03 +02:00
|
|
|
addSpieler();
|
2023-10-11 11:15:39 +02:00
|
|
|
break;
|
|
|
|
case 3:
|
2023-10-14 19:15:04 +02:00
|
|
|
System.out.println(spiel.toString());
|
|
|
|
break;
|
|
|
|
case 4:
|
2023-10-19 16:44:03 +02:00
|
|
|
spielerLöschen();
|
2023-10-15 10:13:40 +02:00
|
|
|
break;
|
|
|
|
case 5:
|
2023-10-10 17:54:22 +02:00
|
|
|
break mainloop;
|
|
|
|
case 0:
|
|
|
|
System.out.println("Diese eingabe ist nicht vergeben.");
|
2023-10-10 17:44:25 +02:00
|
|
|
}
|
2023-10-10 17:54:22 +02:00
|
|
|
}
|
2023-10-10 17:44:25 +02:00
|
|
|
System.out.println("auf wiedersehen!");
|
|
|
|
}
|
|
|
|
|
2023-10-19 16:44:03 +02:00
|
|
|
private void spielStarten() {
|
|
|
|
this.spiel.starteSpiel();
|
|
|
|
System.out.println("Noch nicht implementiert.");
|
|
|
|
}
|
|
|
|
|
2023-11-07 15:48:15 +01:00
|
|
|
private void addSpieler() throws SpielNotFoundException {
|
2023-10-19 16:44:03 +02:00
|
|
|
int spieler_anzahl = this.spiel.getAlleSpieler().length;
|
|
|
|
if (spieler_anzahl <= 5) {
|
|
|
|
System.out.println("Gib den Namen des Spielers an");
|
|
|
|
String name = sc.nextLine();
|
|
|
|
System.out.println("Gib das Geschlecht an.");
|
|
|
|
System.out.println("Männlich (M), Weiblich (W), Divers (D), KI (K)");
|
|
|
|
String geschlecht = sc.nextLine();
|
|
|
|
switch (geschlecht) {
|
|
|
|
case "W":
|
|
|
|
spiel.addSpieler(name, Geschlecht.W);
|
|
|
|
break;
|
|
|
|
case "M":
|
|
|
|
spiel.addSpieler(name, Geschlecht.M);
|
|
|
|
break;
|
|
|
|
case "D":
|
|
|
|
spiel.addSpieler(name, Geschlecht.D);
|
|
|
|
break;
|
|
|
|
case "K":
|
|
|
|
spiel.addSpieler(name, Geschlecht.KI);
|
|
|
|
break;
|
|
|
|
default:
|
|
|
|
System.out.println("Diese eingabe ist nicht gültig");
|
|
|
|
break;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
} else {
|
|
|
|
System.out.println("Die Maximale Spieleranzahl ist erreicht.");
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
private void spielerLöschen() {
|
|
|
|
|
|
|
|
if (this.spiel.getAlleSpieler().length >= 1) {
|
|
|
|
System.out.println("Welchen Spieler willst du löschen?");
|
|
|
|
System.out.println("Gib die ID des Spielers an.");
|
|
|
|
|
|
|
|
String[] spieler = spiel.getAlleSpieler();
|
|
|
|
for (int i = 0; i < spieler.length; i++) {
|
|
|
|
System.out.println(spieler[i]);
|
|
|
|
}
|
|
|
|
|
|
|
|
int _id = Integer.parseInt(sc.nextLine());
|
2023-10-25 11:57:48 +02:00
|
|
|
// System.out.println(_id);
|
2023-10-19 16:44:03 +02:00
|
|
|
for (String s : spieler) {
|
|
|
|
if (s.contains("ID: " + _id)) {
|
|
|
|
System.out.println("Sicher das du " + s + " löschen willst?");
|
2023-10-25 11:57:48 +02:00
|
|
|
} else {
|
|
|
|
System.out.println("Diese Spieler ist nicht vorhanden!");
|
|
|
|
_id = 0;
|
2023-10-19 16:44:03 +02:00
|
|
|
}
|
|
|
|
}
|
|
|
|
boolean valid_choice = false;
|
|
|
|
while (!valid_choice) {
|
|
|
|
System.out.println("Ja [j] Nein [n]");
|
|
|
|
String wahl = sc.nextLine();
|
|
|
|
switch (wahl) {
|
|
|
|
case "j":
|
|
|
|
valid_choice = true;
|
|
|
|
try {
|
|
|
|
spiel.removeSpieler(_id);
|
|
|
|
System.out.println("Spieler löschen erfolgreich!");
|
|
|
|
} catch (SpielerNotFoundException | EmptyListException | RuntimeException e) {
|
|
|
|
System.out.println(e.getMessage());
|
|
|
|
}
|
|
|
|
|
|
|
|
break;
|
|
|
|
case "n":
|
|
|
|
System.out.println("Spieler löschen abgebrochen!");
|
|
|
|
valid_choice = true;
|
|
|
|
break;
|
|
|
|
default:
|
|
|
|
System.out.println("Diese Auswhal ist nicht gültig");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
System.out.println("Es existieren keine Spieler zum löschen.");
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
private void print(String message) {
|
|
|
|
System.out.println(message);
|
|
|
|
}
|
|
|
|
|
2023-10-05 23:32:29 +02:00
|
|
|
}
|