Rudimentär spielbare Version fertig gestellt.

Nun ist es möglich, mehrfach zu würfeln und Würfel festzuhalten, sowie
in den Kategorien 1 bis 6 Punkte eintragen zu lassen.
refactoringFassade
hummel 2024-05-14 13:46:01 +02:00
parent eb75d9f924
commit 6e48020484
6 changed files with 94 additions and 5 deletions

View File

@ -29,4 +29,9 @@ public class Gewinnkarte {
return sb.toString();
}
public void punkteEintragen(int kategorie, Würfel[] würfel) {
kategorien[kategorie].punkteEintragen(würfel);
}
}

View File

@ -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;
}

View File

@ -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());
}
}

View File

@ -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;
}
}

View File

@ -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);
}
}

View File

@ -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());
}
}