TUI verschönert und kleinere Fehler korrigiert.

refactoringFassade
hummel 2024-05-14 14:49:26 +02:00
parent 6e48020484
commit fead586452
5 changed files with 49 additions and 29 deletions

View File

@ -12,26 +12,32 @@ public class Gewinnkarte {
} }
} }
public boolean punkteEintragen(int kategorie, Würfel[] würfel) {
if (!kategorien[kategorie].isOffen())
return false;
kategorien[kategorie].punkteEintragen(würfel);
return true;
}
public String toString() { public String toString() {
StringBuilder sb = new StringBuilder(); StringBuilder sb = new StringBuilder();
int i = 1;
for (Kategorie k : kategorien) { for (Kategorie k : kategorien) {
sb.append(k.getName() + ": "); sb.append(String.format("%2d. %s: ", i++, k.getName()));
if (k.isOffen()) if (k.isOffen())
sb.append("offen"); sb.append("offen");
else else
sb.append(k.getPunkte()); sb.append(k.getPunkte());
sb.append(System.lineSeparator()); if (i <= kategorien.length)
sb.append(System.lineSeparator());
} }
return sb.toString(); return sb.toString();
} }
public void punkteEintragen(int kategorie, Würfel[] würfel) {
kategorien[kategorie].punkteEintragen(würfel);
}
} }

View File

@ -39,8 +39,8 @@ public class Spiel {
return becher.getWürfelwerte(); return becher.getWürfelwerte();
} }
public void punkteEintragen(int kategorie) { public boolean punkteEintragen(int kategorie) {
spieler[aktuellerSpieler].getGewinnkarte().punkteEintragen(kategorie - 1, becher.getWürfel()); return spieler[aktuellerSpieler].getGewinnkarte().punkteEintragen(kategorie - 1, becher.getWürfel());
} }
} }

View File

@ -26,7 +26,7 @@ public class KniffelApi {
return spiel.wurfDurchführen(würfel); return spiel.wurfDurchführen(würfel);
} }
public void punkteEintragen(int kategorie) { public boolean punkteEintragen(int kategorie) {
spiel.punkteEintragen(kategorie); return spiel.punkteEintragen(kategorie);
} }
} }

View File

@ -35,7 +35,8 @@ public class SpielStart {
return; return;
} }
System.out.println(spielernamen.size() + " Mitspieler eingeben."); System.out.println(spielernamen.size() + " Mitspieler eingegeben.");
System.out.println();
System.out.print("Möchten Sie den StarWars-Modus spielen? (j/n): "); System.out.print("Möchten Sie den StarWars-Modus spielen? (j/n): ");
String sw = kb.nextLine(); String sw = kb.nextLine();

View File

@ -14,11 +14,10 @@ public class SpielrundeSpielen {
} }
public void verarbeiteEingabe() { public void verarbeiteEingabe() {
System.out.println("Gewinnkarte von " + api.getNameAktuellerSpieler()); gewinnkarteAusgeben();
System.out.println(api.getGewinnkarte().toString());
String[] zuWürfeln = new String[0]; String[] zuWürfeln = new String[0];
for (int i = 1; i <= 3; i++) { for (int i = 1; i <= 3; i++) {
int[] würfelwerte = api.wurfDurchführen(zuWürfeln); int[] würfelwerte = api.wurfDurchführen(zuWürfeln);
System.out.print(i + ". Wurf: "); System.out.print(i + ". Wurf: ");
@ -28,30 +27,44 @@ public class SpielrundeSpielen {
System.out.println(); System.out.println();
System.out.println(" 1 2 3 4 5"); System.out.println(" 1 2 3 4 5");
System.out.println(); System.out.println();
if (i == 3) if (i == 3)
break; break;
System.out.println("Welche Würfel sollen noch einmal geworfen werden? "); System.out.println("Welche Würfel sollen noch einmal geworfen werden? ");
System.out.println("Nr. des/der Würfel durch Leerzeichen getrennt eingeben."); System.out.println("Nr. des/der zu werfenden Würfel(s) durch Leerzeichen getrennt eingeben.");
System.out.println("Leere Eingabe, um gar nicht mehr zu würfeln."); System.out.println("Eine leere Eingabe, beendet das Würfeln.");
System.out.print("Eingabe: "); System.out.print("Eingabe: ");
String eingabe = kb.nextLine(); String eingabe = kb.nextLine();
if (eingabe.isEmpty()) if (eingabe.isEmpty())
break; break;
zuWürfeln = eingabe.split(" "); zuWürfeln = eingabe.split(" ");
} }
gewinnkarteAusgeben();
System.out.println("In welcher Kategorie sollen die Punkte eingetragen werden?"); System.out.println("In welcher Kategorie sollen die Punkte eingetragen werden?");
System.out.print("> "); do {
System.out.print("> ");
int kategorie = Integer.parseInt(kb.nextLine()); int kategorie= Integer.parseInt(kb.nextLine());
api.punkteEintragen(kategorie); if (!api.punkteEintragen(kategorie))
System.out.println("Kategorie bereits belegt, bitte andere wählen.");
System.out.println(api.getGewinnkarte().toString()); else
break;
} while(false);
gewinnkarteAusgeben();
} }
private void gewinnkarteAusgeben() {
System.out.println();
System.out.println("##################################################");
System.out.println("Gewinnkarte von " + api.getNameAktuellerSpieler());
System.out.println(api.getGewinnkarte().toString());
System.out.println("##################################################");
System.out.println();
}
} }