106 lines
4.0 KiB
Java
106 lines
4.0 KiB
Java
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++;
|
|
}
|
|
}
|
|
|
|
}
|