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());
if (i <= kategorien.length)
sb.append(System.lineSeparator()); 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,8 +14,7 @@ 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];
@ -33,8 +32,8 @@ public class SpielrundeSpielen {
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();
@ -44,14 +43,28 @@ public class SpielrundeSpielen {
zuWürfeln = eingabe.split(" "); zuWürfeln = eingabe.split(" ");
} }
System.out.println("In welcher Kategorie sollen die Punkte eingetragen werden?"); gewinnkarteAusgeben();
System.out.print("> ");
System.out.println("In welcher Kategorie sollen die Punkte eingetragen werden?");
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.");
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(api.getGewinnkarte().toString());
System.out.println("##################################################");
System.out.println();
} }
} }