package UI; import exceptions.WesenExistiertNichtException; import facade.Teamkampf; public class UI { private Teamkampf teamkampfSpiel; private boolean siegbedingung = false; private static final int SIMULATIONSGESCHWINDIGKEIT = 500; private int defaultAnzahlTeams = 2; public UI() { teamkampfSpiel = new Teamkampf(); System.out.printf("\n\nWillkommen bei Teamkampf!\n\nBitte Vergrößern Sie das Terminal für ein besseres Spielerlebnis!\n\n"); } public void run() { System.out.printf("Wieviele Teams möchten Sie simulieren? (Zahl > 1)\n"); int anzahlTeams = defaultAnzahlTeams; boolean eingabeGueltig = false; while (!eingabeGueltig) { try { anzahlTeams = Main.scanner.nextInt(); Main.scanner.nextLine(); // "Schluckt" den Zeilenumbruch if (anzahlTeams > 1) { eingabeGueltig = true; } else { System.out.printf("\n\nEingabe Ungültig! Bitte nur eine Zahl > 1 eingeben!\n\n"); } } catch (java.util.InputMismatchException e) { System.out.printf("\n\nEingabe Ungültig! Bitte nur eine Zahl eingeben!\n\n"); Main.scanner.nextLine(); // Schluckt die Ausgabe } } for(int i = 1; i <= anzahlTeams; i++) { String teamName = "Team " + i; teamkampfSpiel.erstelleTeam(teamName);//Der Einfachheit halber alle Teams durchnummerieren while(true) { System.out.printf("\n\n\n\n\nWelches Mitglied möchten Sie %s hinzufügen? Sie haben Maximal %d Lagerplatz für ihre Truppen!", teamName, Teamkampf.MAXIMALLAGERPLATZ); System.out.printf("\nDrücken Sie \"W\" um die Teammitglieder für das nächste Team auszuwählen bzw. mit der Simulation zu beginnen!\n\n"); System.out.printf("Auswahl:\nKobold: K, %d Lagerplatz\nRitter: R, %d Lagerplatz\n", teamkampfSpiel.getLagerPlatzVonWesen("K"), teamkampfSpiel.getLagerPlatzVonWesen("R")); //Hier neue Wesen zur UI hinzufügen String neuesMitglied = Main.scanner.nextLine().toUpperCase(); try { if (neuesMitglied.equals("W")) { break; } else if (!teamkampfSpiel.addWesenToTeam(teamName, neuesMitglied)) { System.out.printf("\nDas hat nicht geklappt! Dieses Teammitglied braucht zu viel Platz!"); } } catch (WesenExistiertNichtException e) { System.out.printf("\nDas hat nicht geklappt! Das ausgewählte Wesen existiert nicht!"); continue; } System.out.printf("\n\n\nIhre Truppen brauchen momentan %d Lagerplatz!", teamkampfSpiel.getDerzeitigerLagerPlatzVonTeam(teamName)); } } System.out.printf("\n\n\n\nDie Teams:\n\n"); System.out.printf(teamkampfSpiel.teamsToString() + "\n\n"); System.out.printf("Beliebige Taste, dann ENTER drücken um die Simulation zu starten."); Main.scanner.next().toUpperCase(); System.out.printf("\n\n\n"); int runde = 1; while(!siegbedingung) { System.out.printf("\n\nRunde %d\n\n", runde); teamkampfSpiel.triggerRound(); System.out.printf(teamkampfSpiel.teamsToString() + "\n\n"); try { Thread.sleep(SIMULATIONSGESCHWINDIGKEIT); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } if(teamkampfSpiel.checkGewinner()){ System.out.printf("\n\n\n\nHerlichen Glückwunsch!\n\n"); System.out.printf("Der Sieger ist: " + teamkampfSpiel.teamsToString() + "\n\n"); teamkampfSpiel.gewinnerToString(); siegbedingung = true; } runde++; } } }