WIZARD_PR2_DOP/UI/SpielCLI.java

163 lines
5.3 KiB
Java

/*
============================================================
This is the "SpielCLI" file from Author: Philipp Kotte
written on: 05 / 10 / 2023 at: 23:25
============================================================
*/
package UI;
import Facade.Spiel;
import Domain.Spieler;
import Domain.Enums.Geschlecht;
import Domain.Exceptions.EmptyListException;
import Domain.Exceptions.SpielerNotFoundException;
import java.util.Scanner;
public class SpielCLI {
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";
Scanner sc = new Scanner(System.in);
private Spiel spiel;
public SpielCLI(Spiel spiel) {
this.spiel = spiel;
hauptmenue();
}
public void hauptmenue() {
System.out.println("Hallo Wanderer");
mainloop: while (true) {
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");
int input = 0;
try {
input = Integer.parseInt(sc.nextLine());
} catch (NumberFormatException e) {
System.out.println("Diese eingabe ist ungültig.");
}
switch (input) {
case 1:
spielStarten();
break;
case 2:
addSpieler();
break;
case 3:
System.out.println(spiel.toString());
break;
case 4:
spielerLöschen();
break;
case 5:
break mainloop;
case 0:
System.out.println("Diese eingabe ist nicht vergeben.");
}
}
System.out.println("auf wiedersehen!");
}
private void spielStarten() {
this.spiel.starteSpiel();
System.out.println("Noch nicht implementiert.");
}
private void addSpieler() {
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());
System.out.println(_id);
for (String s : spieler) {
if (s.contains("ID: " + _id)) {
System.out.println("Sicher das du " + s + " löschen willst?");
}
}
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);
}
}