kts.block #42

Closed
2210892 wants to merge 2 commits from kts.block into main
3 changed files with 24 additions and 8 deletions

View File

@ -0,0 +1,8 @@
package Domain.Exceptions;
public class EmptyKartensortiertException extends SpielException {
public EmptyKartensortiertException(String message) {
super(2, message);
}
}

View File

@ -12,6 +12,8 @@ import java.util.List;
import java.util.Random; import java.util.Random;
import java.util.HashMap; import java.util.HashMap;
import Domain.Enums.Kartenfarbe; import Domain.Enums.Kartenfarbe;
import Domain.Exceptions.EmptyKartensortiertException;
import Domain.Exceptions.SpielException;
import Domain.Karten.*; import Domain.Karten.*;
@ -20,7 +22,7 @@ public class Kartenstapel {
// Statische Konstanten // Statische Konstanten
// Statische Attribute // Statische Attribute
private static int kartenzählen = 1;
// Attribute der Objekte // Attribute der Objekte
/** /**
@ -108,7 +110,7 @@ public class Kartenstapel {
* durch die @code Random 'zufall' befüllt. * durch die @code Random 'zufall' befüllt.
* *
*/ */
public void mischen() { public void mischen() throws EmptyKartensortiertException {
ArrayList<Integer> zahlen = new ArrayList<>(); ArrayList<Integer> zahlen = new ArrayList<>();
for (int i = 1; i <= 60; i++) { for (int i = 1; i <= 60; i++) {
zahlen.add(i); zahlen.add(i);
@ -117,8 +119,13 @@ public class Kartenstapel {
for (int i = 0; i < 60; i++) { for (int i = 0; i < 60; i++) {
int index = zufall.nextInt(zahlen.size()); int index = zufall.nextInt(zahlen.size());
int schlüsselzahl = zahlen.get(index); int schlüsselzahl = zahlen.get(index);
kartengemischt.put(i + 1, kartensortiert.get(schlüsselzahl)); try {
kartengemischt.put(i + 1, kartensortiert.get(schlüsselzahl));
} catch(Exception e) {
new EmptyKartensortiertException("Es wurde versucht ein leerer Kartenstapel zu mischen.");
}
zahlen.remove(index); zahlen.remove(index);
} }
for(Karte k : kartengemischt.values()) { for(Karte k : kartengemischt.values()) {
@ -130,12 +137,13 @@ public class Kartenstapel {
* Methode getObersteKarte(): Hier wird der Reihe nach die jeweils oberste Karte * Methode getObersteKarte(): Hier wird der Reihe nach die jeweils oberste Karte
* an den Spieler verteilt, bzw. am Ende des Verteilens der Trumpf gezogen, * an den Spieler verteilt, bzw. am Ende des Verteilens der Trumpf gezogen,
* falls noch eine Karte auf dem Stapel liegen sollte. Hierzu wird die Runde, * falls noch eine Karte auf dem Stapel liegen sollte. Hierzu wird die Runde,
* als Ausgangswert genommen. * als Ausgangswert genommen. Die Prüfung ob der return = null ist erfolgt in der
* Klasse Spiel, um dann auszusagen, dass es keinen Trumpf gibt
*/ */
public Object getObersteKarte() { public Object getObersteKarte() {
Object k = kartengemischt.values().toArray()[0]; Object k = kartengemischt.values().toArray()[0];
kartengemischt.remove(k); kartengemischt.remove(k);
return k; return k;
} }

View File

@ -144,7 +144,7 @@ public class Spiel implements Serializable {
} else if (!this.spieler.containsKey(id_spieler)) { } else if (!this.spieler.containsKey(id_spieler)) {
throw new SpielerNotFoundException("Dieser Spieler existiert nicht"); throw new SpielerNotFoundException("Dieser Spieler existiert nicht");
} else if (this.spieler.values().size() == 0) { } else if (this.spieler.values().size() == 0) {
throw new EmptyListException("Dise Liste ist Leer."); throw new EmptyListException("Diese Liste ist Leer.");
} else { } else {
throw new RuntimeException("Unkown Error"); throw new RuntimeException("Unkown Error");
} }