Spiel weiter spielbar gemacht
Nun kann ein komplettes Spiel mit mehreren Spielern bis zum Befüllen aller Kategorien gespielt werden.main
parent
cdee044dd1
commit
13440e4437
|
@ -3,9 +3,11 @@ package de.hs_mannheim.informatik.games.kniffel.domain;
|
||||||
public class Gewinnkarte {
|
public class Gewinnkarte {
|
||||||
private Kategorie[] kategorien;
|
private Kategorie[] kategorien;
|
||||||
private final int KATEGORIE_ANZAHL = 6;
|
private final int KATEGORIE_ANZAHL = 6;
|
||||||
|
private int summe;
|
||||||
|
|
||||||
public Gewinnkarte() {
|
public Gewinnkarte() {
|
||||||
kategorien = new Kategorie[KATEGORIE_ANZAHL];
|
kategorien = new Kategorie[KATEGORIE_ANZAHL];
|
||||||
|
summe = 0;
|
||||||
|
|
||||||
for (int i = 1; i <= kategorien.length; i++) {
|
for (int i = 1; i <= kategorien.length; i++) {
|
||||||
kategorien[i-1] = new Kategorie(i);
|
kategorien[i-1] = new Kategorie(i);
|
||||||
|
@ -16,7 +18,7 @@ public class Gewinnkarte {
|
||||||
if (!kategorien[kategorie].isOffen())
|
if (!kategorien[kategorie].isOffen())
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
kategorien[kategorie].punkteEintragen(würfel);
|
summe+= kategorien[kategorie].punkteEintragen(würfel);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -33,11 +35,15 @@ public class Gewinnkarte {
|
||||||
else
|
else
|
||||||
sb.append(k.getPunkte());
|
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();
|
return sb.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public int getKategorieAnzahl() {
|
||||||
|
return KATEGORIE_ANZAHL;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,6 +7,8 @@ public class Spiel {
|
||||||
private int spieleranzahl;
|
private int spieleranzahl;
|
||||||
private int aktuellerSpieler;
|
private int aktuellerSpieler;
|
||||||
private Würfelbecher becher;
|
private Würfelbecher becher;
|
||||||
|
private int rundenzähler;
|
||||||
|
private int spielerzähler;
|
||||||
|
|
||||||
public Spiel(ArrayList<String> spielernamen) {
|
public Spiel(ArrayList<String> spielernamen) {
|
||||||
spieleranzahl = spielernamen.size();
|
spieleranzahl = spielernamen.size();
|
||||||
|
@ -17,6 +19,8 @@ public class Spiel {
|
||||||
}
|
}
|
||||||
|
|
||||||
aktuellerSpieler = (int)(Math.random() * spieleranzahl);
|
aktuellerSpieler = (int)(Math.random() * spieleranzahl);
|
||||||
|
rundenzähler = 1;
|
||||||
|
spielerzähler = 1;
|
||||||
|
|
||||||
becher = new Würfelbecher();
|
becher = new Würfelbecher();
|
||||||
becher.würfle();
|
becher.würfle();
|
||||||
|
@ -43,4 +47,15 @@ public class Spiel {
|
||||||
return spieler[aktuellerSpieler].getGewinnkarte().punkteEintragen(kategorie - 1, becher.getWürfel());
|
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();
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -9,7 +9,6 @@ public class KniffelApi {
|
||||||
private Spiel spiel;
|
private Spiel spiel;
|
||||||
|
|
||||||
public void starteSpiel(ArrayList<String> spielernamen, boolean starWarsModus) {
|
public void starteSpiel(ArrayList<String> spielernamen, boolean starWarsModus) {
|
||||||
|
|
||||||
// TODO: StarWars über Vererbung einbauen?
|
// TODO: StarWars über Vererbung einbauen?
|
||||||
spiel = new Spiel(spielernamen);
|
spiel = new Spiel(spielernamen);
|
||||||
}
|
}
|
||||||
|
@ -29,4 +28,8 @@ public class KniffelApi {
|
||||||
public boolean punkteEintragen(int kategorie) {
|
public boolean punkteEintragen(int kategorie) {
|
||||||
return spiel.punkteEintragen(kategorie);
|
return spiel.punkteEintragen(kategorie);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean nächsterSpieler() {
|
||||||
|
return spiel.nächsterSpieler();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -14,9 +14,11 @@ public class SpielrundeSpielen {
|
||||||
}
|
}
|
||||||
|
|
||||||
public void verarbeiteEingabe() {
|
public void verarbeiteEingabe() {
|
||||||
|
do {
|
||||||
|
System.out.print(">>>>>>>>>");
|
||||||
gewinnkarteAusgeben();
|
gewinnkarteAusgeben();
|
||||||
|
|
||||||
String[] zuWürfeln = new String[0];
|
String[] zuWürfeln = {"1", "2", "3", "4", "5"};
|
||||||
|
|
||||||
for (int i = 1; i <= 3; i++) {
|
for (int i = 1; i <= 3; i++) {
|
||||||
int[] würfelwerte = api.wurfDurchführen(zuWürfeln);
|
int[] würfelwerte = api.wurfDurchführen(zuWürfeln);
|
||||||
|
@ -57,6 +59,11 @@ public class SpielrundeSpielen {
|
||||||
} while(false);
|
} while(false);
|
||||||
|
|
||||||
gewinnkarteAusgeben();
|
gewinnkarteAusgeben();
|
||||||
|
|
||||||
|
} while(api.nächsterSpieler());
|
||||||
|
|
||||||
|
System.out.println("Spielende!");
|
||||||
|
// TODO: Gewinnerprüfung
|
||||||
}
|
}
|
||||||
|
|
||||||
private void gewinnkarteAusgeben() {
|
private void gewinnkarteAusgeben() {
|
||||||
|
|
Loading…
Reference in New Issue