59 lines
1.5 KiB
Java
59 lines
1.5 KiB
Java
package Uni.semester03.BlackJack;
|
|
|
|
import java.util.ArrayList;
|
|
|
|
public class Hand {
|
|
private ArrayList<Karte> hand;
|
|
|
|
protected Hand(Kartenstapel ks) {
|
|
hand = createHand(ks); // Erstelle neue Hand für Spieler
|
|
}
|
|
|
|
private ArrayList<Karte> createHand(Kartenstapel ks) {
|
|
ArrayList<Karte> neueHand = new ArrayList<>();
|
|
neueHand.add(ks.getKarte());
|
|
neueHand.add(ks.getKarte());
|
|
return neueHand;
|
|
}
|
|
|
|
public void addWeitereKarte(Karte karte) {
|
|
hand.add(karte);
|
|
}
|
|
|
|
public int getPunkte() {
|
|
int punkte = 0;
|
|
int anzahlAss = 0;
|
|
|
|
// Durchlaufe die Karten in der Hand
|
|
for (Karte karte : hand) {
|
|
punkte += karte.getPunkte(); // Addiere die Punkte der aktuellen Karte zur Gesamtpunktzahl
|
|
|
|
// Wenn die aktuelle Karte ein Ass ist, erhöhe den Zähler
|
|
if (karte.getKarte().equals("ASS")) {
|
|
anzahlAss++;
|
|
}
|
|
}
|
|
|
|
// Berücksichtige die möglichen Werte für Asse
|
|
// Füge 10 Punkte für jedes Ass hinzu, solange der Gesamtwert der Hand (ohne Asse) plus 10 nicht über 21 liegt
|
|
while (anzahlAss > 0 && punkte + 10 <= 21) {
|
|
punkte += 10;
|
|
anzahlAss--;
|
|
}
|
|
|
|
return punkte;
|
|
}
|
|
|
|
public boolean isBlackJack() {
|
|
return hand.size() == 2 && getPunkte() == 21;
|
|
}
|
|
|
|
public String toString() {
|
|
String ausgabe = "";
|
|
for (Karte karte : hand) {
|
|
ausgabe += karte.toString() + "\n";
|
|
}
|
|
return ausgabe;
|
|
}
|
|
}
|