Sollte jetzt ohne Fehler alles implementiert sein.

master
s.eser 2024-03-23 20:13:29 +01:00
parent 13defb4014
commit dde68f1784
4 changed files with 116 additions and 30 deletions

View File

@ -4,38 +4,58 @@ import java.util.Scanner;
public class BlackJackSpiel {
public BlackJackSpiel(){
Scanner sc = new Scanner(System.in);
System.out.println("Willkommen zum BlackJack Trainer");
Kartenstapel ks = new Kartenstapel();
int s = 1;
while(true){
System.out.println("BlackJack: Möchten Sie ein neues Spiel anfangen? (Ja/Nein)");
if (sc.next().equalsIgnoreCase("Ja")) {
Kartenstapel ks = new Kartenstapel();
int t = 1;
String eingabe = "";
System.out.println("Möchten Sie ein neues Spiel anfangen? (Ja/Nein)");
Scanner sc = new Scanner(System.in);
if (sc.nextLine().equalsIgnoreCase("Ja")) {
if(s != 1) {
System.out.println("Möchten Sie einen neuen Kartenstapel? (Ja/Nein)");
if(sc.nextLine().equalsIgnoreCase("Ja"))
ks = new Kartenstapel();
}
s = 2;
Hand spieler = getNeueHand(ks);
System.out.println("Ihre Hand: "+spieler);
if (spieler.isBlackJack()) {
System.out.println("BlackJack: Ihre Hand: "+spieler);
System.out.println("BlackJack: Sie haben einen BlackJack!");
System.out.println("Sie haben einen BlackJack!");
} else {
while(spieler.getPunkte()<22) {
if(t>1)
System.out.println("Ihre Hand: "+spieler);
if(spieler.getPunkte()==21) {
System.out.println("Ihre Endpunktzahl von diesem Spiel beträgt: 21");
eingabe = "Nein";
break;
}
int punkte = spieler.getPunkte();
System.out.println("BlackJack: Ihre Hand: "+spieler);
System.out.println("BlackJack: Ihre Hand ergibt zurzeit: " + punkte + " Punkte.");
System.out.println("BlackJack: Möchten Sie noch eine Karte ziehen? (Ja/Nein)");
if (sc.next().equalsIgnoreCase("Ja"))
System.out.println("Ihre Hand ergibt zurzeit: " + punkte + " Punkte.");
System.out.println("Möchten Sie noch eine Karte ziehen? (Ja/Nein)");
t++;
eingabe = sc.nextLine();
if (eingabe.equalsIgnoreCase("Ja"))
spieler.addKarte(ks);
else {
System.out.println("BlackJack: Ihre Endpunktzahl von diesem Spiel beträgt: " + spieler.getPunkte());
System.out.println("Ihre Endpunktzahl von diesem Spiel beträgt: " + spieler.getPunkte());
break;
}
}
System.out.println("BlackJack: Ihre Hand: "+spieler);
System.out.println("BlackJack: Ihre Endpunktzahl von diesem Spiel beträgt: "+spieler.getPunkte());
System.out.println("BlackJack: Damit haben Sie 21 überschritten und verloren.");
if(eingabe.equalsIgnoreCase("Ja")) {
System.out.println("Ihre Hand: " + spieler);
System.out.println("Ihre Endpunktzahl von diesem Spiel beträgt: " + spieler.getPunkte());
System.out.println("Damit haben Sie 21 überschritten und verloren.");
}
}
} else {
System.out.println("BlackJack: Damit wäre das Spiel beendet.");
System.out.println("Damit wäre das Spiel beendet.");
break;
}
}

View File

@ -23,7 +23,7 @@ public class Hand {
public int getPunkte(){
int ergebnis = 0;
for(int i = 0; i<hand.size(); i++){
ergebnis += hand.get(i).getPunkte();
ergebnis += hand.get(i).getPunkte(hand);
}
return ergebnis;
}

View File

@ -1,5 +1,6 @@
package de.hs_mannheim.informatik.blackjack;
import java.util.ArrayList;
import java.util.Scanner;
public class Karte {
@ -19,23 +20,85 @@ public class Karte {
return farbe + " " + karte;
}
public int getPunkte(){
public int getPunkte(ArrayList<Karte> hand){
int counter = 0;
for(int i = 0; i<hand.size(); i++){
if(hand.get(i).karte.equals("Ass"))
counter ++;
}
if(karte.equals("Bube")||karte.equals("Dame")||karte.equals("König"))
return 10;
else if(karte.equals("Ass")) {
Scanner ass = new Scanner(System.in);
System.out.print("Soll das Ass als 1 oder 11 Punkte zählen?(1/11):");
int entscheidung = ass.nextInt();
if (entscheidung == 1) {
ass.close();
return 1;
} else if (entscheidung == 11) {
ass.close();
return 11;
else if(karte.equals("Ass")&&counter==1) {
int entscheidung = 0;
for(int i = 0; i<hand.size(); i++) {
if (hand.get(i).karte.equals("Bube")||hand.get(i).karte.equals("Dame")||hand.get(i).karte.equals("König")) {
entscheidung += 10;
} else if (!hand.get(i).karte.equals("Ass")) {
entscheidung += Integer.parseInt(hand.get(i).karte);
}
}
} else
if (entscheidung<=10)
return 11;
else
return 1;
}else if(karte.equals("Ass")&&counter==2) {
int entscheidung = 0;
int counterAss = 0;
for(int i = 0; i<hand.size(); i++) {
if (hand.get(i).karte.equals("Bube")||hand.get(i).karte.equals("Dame")||hand.get(i).karte.equals("König")) {
entscheidung += 10;
} else if (!hand.get(i).karte.equals("Ass")) {
entscheidung += Integer.parseInt(hand.get(i).karte);
} else if(counterAss<1) {
entscheidung += 1;
counterAss ++;
}
}
if (entscheidung<=10)
return 11;
else
return 1;
}else if(karte.equals("Ass")&&counter==3) {
int entscheidung = 0;
int counterAss = 0;
for(int i = 0; i<hand.size(); i++) {
if (hand.get(i).karte.equals("Bube")||hand.get(i).karte.equals("Dame")||hand.get(i).karte.equals("König")) {
entscheidung += 10;
} else if (!hand.get(i).karte.equals("Ass")) {
entscheidung += Integer.parseInt(hand.get(i).karte);
} else if(counterAss<2) {
entscheidung += 1;
counterAss ++;
}
}
if (entscheidung<=10)
return 11;
else
return 1;
}else if(karte.equals("Ass")&&counter==4) {
int entscheidung = 0;
int counterAss = 0;
for(int i = 0; i<hand.size(); i++) {
if (hand.get(i).karte.equals("Bube")||hand.get(i).karte.equals("Dame")||hand.get(i).karte.equals("König")) {
entscheidung += 10;
} else if (!hand.get(i).karte.equals("Ass")) {
entscheidung += Integer.parseInt(hand.get(i).karte);
} else if(counterAss<3) {
entscheidung += 1;
counterAss ++;
}
}
if (entscheidung<=10)
return 11;
else
return 1;
}
else
return Integer.parseInt(karte);
return 0;
}
}

View File

@ -42,6 +42,9 @@ public class Kartenstapel {
}
public Karte getKarte(){
if(kartenstapel.isEmpty()){
System.out.println("Es sind keine Karten mehr im Kartenstapel übrig!");
System.exit(0);}
Karte randomKarte = kartenstapel.get((int)(Math.random()*kartenstapel.size()));
kartenstapel.remove(randomKarte);
return randomKarte;