From fead58645216c9269627ace099a495ca4e0c8547 Mon Sep 17 00:00:00 2001 From: hummel Date: Tue, 14 May 2024 14:49:26 +0200 Subject: [PATCH] =?UTF-8?q?TUI=20versch=C3=B6nert=20und=20kleinere=20Fehle?= =?UTF-8?q?r=20korrigiert.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../games/kniffel/domain/Gewinnkarte.java | 20 +++++--- .../games/kniffel/domain/Spiel.java | 4 +- .../games/kniffel/facade/KniffelApi.java | 4 +- .../games/kniffel/tui/SpielStart.java | 3 +- .../games/kniffel/tui/SpielrundeSpielen.java | 47 ++++++++++++------- 5 files changed, 49 insertions(+), 29 deletions(-) diff --git a/MyKniffel/src/de/hs_mannheim/informatik/games/kniffel/domain/Gewinnkarte.java b/MyKniffel/src/de/hs_mannheim/informatik/games/kniffel/domain/Gewinnkarte.java index 4bac05f..c5e092f 100644 --- a/MyKniffel/src/de/hs_mannheim/informatik/games/kniffel/domain/Gewinnkarte.java +++ b/MyKniffel/src/de/hs_mannheim/informatik/games/kniffel/domain/Gewinnkarte.java @@ -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() { StringBuilder sb = new StringBuilder(); + int i = 1; for (Kategorie k : kategorien) { - sb.append(k.getName() + ": "); + sb.append(String.format("%2d. %s: ", i++, k.getName())); if (k.isOffen()) sb.append("offen"); else sb.append(k.getPunkte()); - sb.append(System.lineSeparator()); + if (i <= kategorien.length) + sb.append(System.lineSeparator()); } return sb.toString(); } - public void punkteEintragen(int kategorie, Würfel[] würfel) { - kategorien[kategorie].punkteEintragen(würfel); - - } - } diff --git a/MyKniffel/src/de/hs_mannheim/informatik/games/kniffel/domain/Spiel.java b/MyKniffel/src/de/hs_mannheim/informatik/games/kniffel/domain/Spiel.java index 2547e23..a17a242 100644 --- a/MyKniffel/src/de/hs_mannheim/informatik/games/kniffel/domain/Spiel.java +++ b/MyKniffel/src/de/hs_mannheim/informatik/games/kniffel/domain/Spiel.java @@ -39,8 +39,8 @@ public class Spiel { return becher.getWürfelwerte(); } - public void punkteEintragen(int kategorie) { - spieler[aktuellerSpieler].getGewinnkarte().punkteEintragen(kategorie - 1, becher.getWürfel()); + public boolean punkteEintragen(int kategorie) { + return spieler[aktuellerSpieler].getGewinnkarte().punkteEintragen(kategorie - 1, becher.getWürfel()); } } diff --git a/MyKniffel/src/de/hs_mannheim/informatik/games/kniffel/facade/KniffelApi.java b/MyKniffel/src/de/hs_mannheim/informatik/games/kniffel/facade/KniffelApi.java index 3e89704..8b3be7e 100644 --- a/MyKniffel/src/de/hs_mannheim/informatik/games/kniffel/facade/KniffelApi.java +++ b/MyKniffel/src/de/hs_mannheim/informatik/games/kniffel/facade/KniffelApi.java @@ -26,7 +26,7 @@ public class KniffelApi { return spiel.wurfDurchführen(würfel); } - public void punkteEintragen(int kategorie) { - spiel.punkteEintragen(kategorie); + public boolean punkteEintragen(int kategorie) { + return spiel.punkteEintragen(kategorie); } } diff --git a/MyKniffel/src/de/hs_mannheim/informatik/games/kniffel/tui/SpielStart.java b/MyKniffel/src/de/hs_mannheim/informatik/games/kniffel/tui/SpielStart.java index 7e70c92..17a1aea 100644 --- a/MyKniffel/src/de/hs_mannheim/informatik/games/kniffel/tui/SpielStart.java +++ b/MyKniffel/src/de/hs_mannheim/informatik/games/kniffel/tui/SpielStart.java @@ -35,7 +35,8 @@ public class SpielStart { 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): "); String sw = kb.nextLine(); diff --git a/MyKniffel/src/de/hs_mannheim/informatik/games/kniffel/tui/SpielrundeSpielen.java b/MyKniffel/src/de/hs_mannheim/informatik/games/kniffel/tui/SpielrundeSpielen.java index 3caeb25..fc5d24a 100644 --- a/MyKniffel/src/de/hs_mannheim/informatik/games/kniffel/tui/SpielrundeSpielen.java +++ b/MyKniffel/src/de/hs_mannheim/informatik/games/kniffel/tui/SpielrundeSpielen.java @@ -14,11 +14,10 @@ public class SpielrundeSpielen { } public void verarbeiteEingabe() { - System.out.println("Gewinnkarte von " + api.getNameAktuellerSpieler()); - System.out.println(api.getGewinnkarte().toString()); + gewinnkarteAusgeben(); String[] zuWürfeln = new String[0]; - + for (int i = 1; i <= 3; i++) { int[] würfelwerte = api.wurfDurchführen(zuWürfeln); System.out.print(i + ". Wurf: "); @@ -28,30 +27,44 @@ public class SpielrundeSpielen { System.out.println(); System.out.println(" 1 2 3 4 5"); System.out.println(); - + if (i == 3) break; - + 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("Leere Eingabe, um gar nicht mehr zu würfeln."); + System.out.println("Nr. des/der zu werfenden Würfel(s) durch Leerzeichen getrennt eingeben."); + System.out.println("Eine leere Eingabe, beendet das Würfeln."); System.out.print("Eingabe: "); - + String eingabe = kb.nextLine(); if (eingabe.isEmpty()) break; - + zuWürfeln = eingabe.split(" "); } - + + gewinnkarteAusgeben(); + System.out.println("In welcher Kategorie sollen die Punkte eingetragen werden?"); - System.out.print("> "); - - int kategorie = Integer.parseInt(kb.nextLine()); - - api.punkteEintragen(kategorie); - - System.out.println(api.getGewinnkarte().toString()); + do { + System.out.print("> "); + int kategorie= Integer.parseInt(kb.nextLine()); + + 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("##################################################"); + System.out.println(); + } }