From 6e48020484df0fc702b56c7bf353319c86421692 Mon Sep 17 00:00:00 2001 From: hummel Date: Tue, 14 May 2024 13:46:01 +0200 Subject: [PATCH] =?UTF-8?q?Rudiment=C3=A4r=20spielbare=20Version=20fertig?= =?UTF-8?q?=20gestellt.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Nun ist es möglich, mehrfach zu würfeln und Würfel festzuhalten, sowie in den Kategorien 1 bis 6 Punkte eintragen zu lassen. --- .../games/kniffel/domain/Gewinnkarte.java | 5 +++ .../games/kniffel/domain/Kategorie.java | 4 +- .../games/kniffel/domain/Spiel.java | 17 +++++++ .../games/kniffel/domain/Würfelbecher.java | 18 ++++++++ .../games/kniffel/facade/KniffelApi.java | 11 +++++ .../games/kniffel/tui/SpielrundeSpielen.java | 44 +++++++++++++++++-- 6 files changed, 94 insertions(+), 5 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 5f181d4..4bac05f 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 @@ -29,4 +29,9 @@ public class Gewinnkarte { 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/Kategorie.java b/MyKniffel/src/de/hs_mannheim/informatik/games/kniffel/domain/Kategorie.java index 46643da..6ec92fa 100644 --- a/MyKniffel/src/de/hs_mannheim/informatik/games/kniffel/domain/Kategorie.java +++ b/MyKniffel/src/de/hs_mannheim/informatik/games/kniffel/domain/Kategorie.java @@ -11,7 +11,7 @@ public class Kategorie { this.punkte = -1; } - public int punkteErmitteln(Würfel[] würfel) { + public int punkteEintragen(Würfel[] würfel) { int punkte = 0; for (Würfel w : würfel) { @@ -19,6 +19,8 @@ public class Kategorie { punkte += AUGEN; } + this.punkte = punkte; + return punkte; } 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 d037264..2547e23 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 @@ -26,4 +26,21 @@ public class Spiel { return spieler[aktuellerSpieler].getGewinnkarte(); } + public String getNameAktuellerSpieler() { + return spieler[aktuellerSpieler].getName(); + } + + public int[] wurfDurchführen(String... würfel) { + if (würfel.length != 0) + for (String w : würfel) { + becher.würfleBestimmtenWürfel(Integer.parseInt(w) - 1); + } + + return becher.getWürfelwerte(); + } + + public void punkteEintragen(int kategorie) { + spieler[aktuellerSpieler].getGewinnkarte().punkteEintragen(kategorie - 1, becher.getWürfel()); + } + } diff --git a/MyKniffel/src/de/hs_mannheim/informatik/games/kniffel/domain/Würfelbecher.java b/MyKniffel/src/de/hs_mannheim/informatik/games/kniffel/domain/Würfelbecher.java index 516aa66..ec6305a 100644 --- a/MyKniffel/src/de/hs_mannheim/informatik/games/kniffel/domain/Würfelbecher.java +++ b/MyKniffel/src/de/hs_mannheim/informatik/games/kniffel/domain/Würfelbecher.java @@ -17,5 +17,23 @@ public class Würfelbecher { würfel[i].würfle(); } } + + public void würfleBestimmtenWürfel(int würfelNummer) { + würfel[würfelNummer].würfle(); + } + + public int[] getWürfelwerte() { + int[] würfelwerte = new int[WÜRFELANZAHL]; + + for (int i = 0; i < WÜRFELANZAHL; i++) { + würfelwerte[i] = würfel[i].getAugen(); + } + + return würfelwerte; + } + + public Würfel[] getWürfel() { + return wü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 3453647..3e89704 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 @@ -18,4 +18,15 @@ public class KniffelApi { return spiel.getGewinnkarteAktuellerSpieler(); } + public String getNameAktuellerSpieler() { + return spiel.getNameAktuellerSpieler(); + } + + public int[] wurfDurchführen(String... würfel) { + return spiel.wurfDurchführen(würfel); + } + + public void punkteEintragen(int kategorie) { + spiel.punkteEintragen(kategorie); + } } 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 0e86c6d..3caeb25 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 @@ -7,15 +7,51 @@ import de.hs_mannheim.informatik.games.kniffel.facade.KniffelApi; public class SpielrundeSpielen { private Scanner kb; private KniffelApi api; - + public SpielrundeSpielen(Scanner kb, KniffelApi api) { this.kb = kb; this.api = api; } - + public void verarbeiteEingabe() { - System.out.println("Gewinnkarte"); + System.out.println("Gewinnkarte von " + api.getNameAktuellerSpieler()); + System.out.println(api.getGewinnkarte().toString()); + + 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: "); + for (int w : würfelwerte) { + System.out.print(w + " "); + } + 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.print("Eingabe: "); + + String eingabe = kb.nextLine(); + if (eingabe.isEmpty()) + break; + + zuWürfeln = eingabe.split(" "); + } + + 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()); } - + }