BlackJack/Hand.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;
}
}