/* ============================================================ 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.SpielNotFoundException; 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) throws SpielNotFoundException { this.spiel = spiel; hauptmenue(); } public void hauptmenue() throws SpielNotFoundException { 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() throws SpielNotFoundException { 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?"); } else { System.out.println("Diese Spieler ist nicht vorhanden!"); _id = 0; } } 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); } }