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 c5e092f..0a99952 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 @@ -3,41 +3,47 @@ package de.hs_mannheim.informatik.games.kniffel.domain; public class Gewinnkarte { private Kategorie[] kategorien; private final int KATEGORIE_ANZAHL = 6; - + private int summe; + public Gewinnkarte() { kategorien = new Kategorie[KATEGORIE_ANZAHL]; - + summe = 0; + for (int i = 1; i <= kategorien.length; i++) { kategorien[i-1] = new Kategorie(i); } } - + public boolean punkteEintragen(int kategorie, Würfel[] würfel) { if (!kategorien[kategorie].isOffen()) return false; - - kategorien[kategorie].punkteEintragen(würfel); - + + summe+= kategorien[kategorie].punkteEintragen(würfel); + return true; } - + public String toString() { StringBuilder sb = new StringBuilder(); - + int i = 1; for (Kategorie k : kategorien) { sb.append(String.format("%2d. %s: ", i++, k.getName())); - + if (k.isOffen()) sb.append("offen"); else sb.append(k.getPunkte()); - - if (i <= kategorien.length) - sb.append(System.lineSeparator()); + + sb.append(System.lineSeparator()); } - + + sb.append(String.format("Summe: %3d Punkte", summe)); return sb.toString(); } + public int getKategorieAnzahl() { + return KATEGORIE_ANZAHL; + } + } 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 a17a242..e076c08 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 @@ -7,6 +7,8 @@ public class Spiel { private int spieleranzahl; private int aktuellerSpieler; private Würfelbecher becher; + private int rundenzähler; + private int spielerzähler; public Spiel(ArrayList spielernamen) { spieleranzahl = spielernamen.size(); @@ -17,6 +19,8 @@ public class Spiel { } aktuellerSpieler = (int)(Math.random() * spieleranzahl); + rundenzähler = 1; + spielerzähler = 1; becher = new Würfelbecher(); becher.würfle(); @@ -42,5 +46,16 @@ public class Spiel { public boolean punkteEintragen(int kategorie) { return spieler[aktuellerSpieler].getGewinnkarte().punkteEintragen(kategorie - 1, becher.getWürfel()); } + + public boolean nächsterSpieler() { + aktuellerSpieler = ++aktuellerSpieler % spieleranzahl; + + if (++spielerzähler > spieleranzahl) { + ++rundenzähler; + spielerzähler = 1; + } + + return rundenzähler <= spieler[aktuellerSpieler].getGewinnkarte().getKategorieAnzahl(); + } } 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 8b3be7e..ab008c6 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 @@ -9,7 +9,6 @@ public class KniffelApi { private Spiel spiel; public void starteSpiel(ArrayList spielernamen, boolean starWarsModus) { - // TODO: StarWars über Vererbung einbauen? spiel = new Spiel(spielernamen); } @@ -29,4 +28,8 @@ public class KniffelApi { public boolean punkteEintragen(int kategorie) { return spiel.punkteEintragen(kategorie); } + + public boolean nächsterSpieler() { + return spiel.nächsterSpieler(); + } } 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 fc5d24a..8ea7139 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,49 +14,56 @@ public class SpielrundeSpielen { } public void verarbeiteEingabe() { - 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: "); - 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 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?"); do { - System.out.print("> "); - int kategorie= Integer.parseInt(kb.nextLine()); + System.out.print(">>>>>>>>>"); + gewinnkarteAusgeben(); - if (!api.punkteEintragen(kategorie)) - System.out.println("Kategorie bereits belegt, bitte andere wählen."); - else - break; - } while(false); + String[] zuWürfeln = {"1", "2", "3", "4", "5"}; - gewinnkarteAusgeben(); + 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 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?"); + 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(); + + } while(api.nächsterSpieler()); + + System.out.println("Spielende!"); + // TODO: Gewinnerprüfung } private void gewinnkarteAusgeben() {