Sollte jetzt ohne Fehler alles implementiert sein.
parent
13defb4014
commit
dde68f1784
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
|
|
Loading…
Reference in New Issue