Blackjack
parent
d3ff1f170c
commit
ab6d2f5668
|
@ -1,6 +1,7 @@
|
|||
package JunitTest;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
public class EinführungTest {
|
||||
|
|
|
@ -0,0 +1,220 @@
|
|||
package Übungen.BlackJack;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.Random;
|
||||
import java.util.Scanner;
|
||||
|
||||
public class BlackJack {
|
||||
private String name;
|
||||
private int guthaben;
|
||||
private int handKartenAnzahl;
|
||||
private int speicherErstEinsatz;
|
||||
|
||||
public BlackJack(String name, int guthaben) {
|
||||
this.name = name;
|
||||
this.guthaben = guthaben;
|
||||
this.handKartenAnzahl = 0;
|
||||
this.speicherErstEinsatz = 0;
|
||||
|
||||
}
|
||||
|
||||
public void setspeicherErstEinsatz(int speicherErstEinsatz) {
|
||||
this.speicherErstEinsatz = speicherErstEinsatz;
|
||||
}
|
||||
|
||||
public int getspeicherErstEinsatz() {
|
||||
return speicherErstEinsatz;
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
public void setName(String name) {
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
public int getGuthaben() {
|
||||
return guthaben;
|
||||
}
|
||||
|
||||
public void setGuthaben(int guthaben) {
|
||||
this.guthaben += guthaben;
|
||||
}
|
||||
|
||||
public void subtrahiereGuthaben(int guthaben) {
|
||||
this.guthaben -= guthaben;
|
||||
}
|
||||
|
||||
public int getHandKartenAnzahl() {
|
||||
return handKartenAnzahl;
|
||||
}
|
||||
|
||||
public void setHandKartenAnzahl(int handKartenAnzahl) {
|
||||
this.handKartenAnzahl += handKartenAnzahl;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "Spieler [name=" + name + ", Guthaben=" + guthaben + "€]";
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
class Spiel {
|
||||
|
||||
private BlackJack spieler1;
|
||||
private BlackJack spieler2;
|
||||
private ArrayList<Integer> KartenSpiellist;
|
||||
private Random random;
|
||||
private ArrayList<Integer> erlaubteEinsätze;
|
||||
private Scanner scan;
|
||||
private int wähleEinsatz;
|
||||
|
||||
public Spiel(BlackJack spieler1, BlackJack spieler2) {
|
||||
this.spieler1 = spieler1;
|
||||
this.spieler2 = spieler2;
|
||||
this.random = new Random();
|
||||
this.wähleEinsatz = 0;
|
||||
this.scan = new Scanner(System.in);
|
||||
this.erlaubteEinsätze = new ArrayList<>();
|
||||
KartenSpiellist = new ArrayList<>();
|
||||
setAlleKartenspiele();
|
||||
|
||||
}
|
||||
|
||||
private boolean guthabenAufladen(BlackJack spieler) {
|
||||
System.out.println("Du hast kein Genug Guthaben\nMöchtest du Guthaben Aufladen? Ja/Nein");
|
||||
scan.nextLine();
|
||||
String guthabenAufladen = scan.nextLine();
|
||||
if (guthabenAufladen.equalsIgnoreCase("ja")) {
|
||||
System.out.println("Wie Viel?");
|
||||
int aufladen = scan.nextInt();
|
||||
if (aufladen > 0) {
|
||||
spieler.setGuthaben(aufladen);
|
||||
System.out.println("Deine neue Guthaben= " + spieler.getGuthaben());
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean bestimmEinsätze(BlackJack spieler) {
|
||||
erlaubteEinsätze.add(5);
|
||||
erlaubteEinsätze.add(10);
|
||||
erlaubteEinsätze.add(25);
|
||||
erlaubteEinsätze.add(100);
|
||||
boolean check = false;
|
||||
System.out.println("Hallo " + spieler.getName() + " dein aktuelles Guthaben: " + spieler.getGuthaben());
|
||||
while (!check) {
|
||||
if (spieler.getGuthaben() < 5)
|
||||
if (guthabenAufladen(spieler))
|
||||
continue;
|
||||
else
|
||||
return false;
|
||||
|
||||
System.out.println("Wähle einen Einsatz von: [5€,10€,25€,100€]");
|
||||
wähleEinsatz = scan.nextInt();
|
||||
if (!erlaubteEinsätze.contains(wähleEinsatz)) {
|
||||
System.out.println("Falsche Eingabe");
|
||||
continue;
|
||||
}
|
||||
if (wähleEinsatz > spieler.getGuthaben()) {
|
||||
if (guthabenAufladen(spieler))
|
||||
continue;
|
||||
else
|
||||
return false;
|
||||
}
|
||||
|
||||
if (erlaubteEinsätze.contains(wähleEinsatz)) {
|
||||
int speicherErstEinsatz = spieler.getGuthaben();
|
||||
spieler.setspeicherErstEinsatz(speicherErstEinsatz);
|
||||
spieler.subtrahiereGuthaben(wähleEinsatz);
|
||||
System.out.println(
|
||||
"Neu Guthaben = " + speicherErstEinsatz + " - " + wähleEinsatz + " = " + spieler.getGuthaben());
|
||||
check = true;
|
||||
}
|
||||
|
||||
}
|
||||
return check;
|
||||
}
|
||||
|
||||
public void giveTwoRandomKarts() {
|
||||
// Karten für Spieler 1
|
||||
int speicher1 = zieheZweiKarten(spieler1);
|
||||
System.out.println(spieler1.getName() + " hat " + speicher1 + " Punkte.");
|
||||
|
||||
// Karten für Spieler 2
|
||||
int speicher2 = zieheZweiKarten(spieler2);
|
||||
System.out.println(spieler2.getName() + " hat " + speicher2 + " Punkte.");
|
||||
}
|
||||
|
||||
private int zieheZweiKarten(BlackJack spieler) {
|
||||
int ersteKarte = KartenSpiellist.get(random.nextInt(KartenSpiellist.size()));
|
||||
int zweiteKarte = KartenSpiellist.get(random.nextInt(KartenSpiellist.size()));
|
||||
int summe = ersteKarte + zweiteKarte;
|
||||
spieler.setHandKartenAnzahl(summe);
|
||||
return summe;
|
||||
}
|
||||
|
||||
public void checkGewinner(BlackJack gewinner1, BlackJack gewinner2) {
|
||||
int speicher = 0;
|
||||
if (gewinner1.getHandKartenAnzahl() < 22)
|
||||
if (gewinner1.getHandKartenAnzahl() > gewinner2.getHandKartenAnzahl()
|
||||
|| gewinner2.getHandKartenAnzahl() > 21) {
|
||||
speicher = gewinner1.getspeicherErstEinsatz() * 2;// 100
|
||||
gewinner1.setspeicherErstEinsatz(speicher);// hier = 100
|
||||
gewinner1.setGuthaben(gewinner1.getspeicherErstEinsatz());
|
||||
System.out.println(gewinner1.getName() + " hat gewonnen!");
|
||||
System.out.println(gewinner1.getName() + " neue Guthaben " + gewinner1.getspeicherErstEinsatz());
|
||||
System.out.println(gewinner2.getName() + " neue Guthaben " + gewinner2.getGuthaben());
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
if (gewinner2.getHandKartenAnzahl() < 22)
|
||||
if (gewinner2.getHandKartenAnzahl() > gewinner1.getHandKartenAnzahl()
|
||||
|| gewinner1.getHandKartenAnzahl() > 21) {
|
||||
speicher = gewinner2.getspeicherErstEinsatz() * 2;// 100
|
||||
gewinner2.setspeicherErstEinsatz(speicher);// hier = 100
|
||||
gewinner2.setGuthaben(gewinner2.getspeicherErstEinsatz());
|
||||
System.out.println(gewinner2.getName() + " hat gewonnen!");
|
||||
System.out.println(gewinner2.getName() + " neue Guthaben " + gewinner2.getspeicherErstEinsatz());
|
||||
System.out.println(gewinner1.getName() + " neue Guthaben " + gewinner1.getGuthaben());
|
||||
|
||||
return;
|
||||
} else
|
||||
System.out.println("Unetschieden!");
|
||||
|
||||
}
|
||||
|
||||
public void setAlleKartenspiele() {
|
||||
for (int i = 1; i <= 11; i++)
|
||||
KartenSpiellist.add(i);
|
||||
|
||||
Collections.shuffle(KartenSpiellist);
|
||||
}
|
||||
|
||||
public void printAlleKartenspiele() {
|
||||
for (int i : KartenSpiellist)
|
||||
System.out.print(i);
|
||||
}
|
||||
|
||||
public ArrayList<Integer> getKartenSpiel() {
|
||||
return KartenSpiellist;
|
||||
}
|
||||
|
||||
public void giveRandomKart(BlackJack spieler) {
|
||||
int randomKart = KartenSpiellist.get((random.nextInt(KartenSpiellist.size())));
|
||||
spieler.setHandKartenAnzahl(randomKart);
|
||||
}
|
||||
|
||||
public void printHandAnzahlKartenSpieler1() {
|
||||
System.out.println(spieler1.getName() + " hat " + spieler1.getHandKartenAnzahl() + " Punkte");
|
||||
}
|
||||
|
||||
public void printHandAnzahlKartenSpieler2() {
|
||||
System.out.println(spieler2.getName() + " hat " + spieler2.getHandKartenAnzahl() + " Punkte");
|
||||
}
|
||||
}
|
|
@ -0,0 +1,86 @@
|
|||
package Übungen.BlackJack;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Scanner;
|
||||
|
||||
public class Test {
|
||||
|
||||
public static void main(String[] args) {
|
||||
|
||||
BlackJack spieler1 = new BlackJack("Obai", 50);
|
||||
BlackJack spieler2 = new BlackJack("Lena", 100);
|
||||
Scanner scan = new Scanner(System.in);
|
||||
|
||||
|
||||
System.out.println(spieler1);
|
||||
System.out.println(spieler2);
|
||||
System.out.println();
|
||||
|
||||
boolean bestimmespieler;
|
||||
|
||||
Spiel newSpiel = new Spiel(spieler1, spieler2);
|
||||
bestimmespieler = newSpiel.bestimmEinsätze(spieler1);
|
||||
if (bestimmespieler)
|
||||
bestimmespieler = newSpiel.bestimmEinsätze(spieler2);
|
||||
|
||||
|
||||
|
||||
|
||||
if (bestimmespieler) {
|
||||
System.out.println("Willkommen im Blackjack-Spiel:");
|
||||
newSpiel.giveTwoRandomKarts();
|
||||
boolean hitSpieler1 = true;
|
||||
boolean hitSpieler2 = true;
|
||||
|
||||
while (hitSpieler1 || hitSpieler2) {
|
||||
System.out.println("------------------------------------------");
|
||||
|
||||
if (spieler1.getHandKartenAnzahl() > 21) hitSpieler1 = false;
|
||||
|
||||
if (hitSpieler1) {
|
||||
System.out.println(spieler1.getName() + " : Möchten Sie hit oder stand? Aktuelle Hand: " + spieler1.getHandKartenAnzahl());
|
||||
String auswahl = scan.nextLine();
|
||||
|
||||
if (auswahl.equalsIgnoreCase("hit")) {
|
||||
newSpiel.giveRandomKart(spieler1);
|
||||
newSpiel.printHandAnzahlKartenSpieler1();
|
||||
} else if (auswahl.equalsIgnoreCase("stand")) {
|
||||
hitSpieler1 = false;
|
||||
newSpiel.printHandAnzahlKartenSpieler1();
|
||||
} else {
|
||||
System.out.println("Falsche Eingabe: Bitte geben Sie entweder 'hit' oder 'stand' ein.");
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
if (spieler2.getHandKartenAnzahl() > 21) hitSpieler2 = false;
|
||||
|
||||
if (hitSpieler2) {
|
||||
System.out.println(spieler2.getName() + " : Möchten Sie hit oder stand? Aktuelle Hand: " + spieler2.getHandKartenAnzahl());
|
||||
String auswahl = scan.nextLine();
|
||||
|
||||
if (auswahl.equalsIgnoreCase("hit")) {
|
||||
newSpiel.giveRandomKart(spieler2);
|
||||
newSpiel.printHandAnzahlKartenSpieler2();
|
||||
} else if (auswahl.equalsIgnoreCase("stand")) {
|
||||
hitSpieler2 = false;
|
||||
newSpiel.printHandAnzahlKartenSpieler2();
|
||||
} else {
|
||||
System.out.println("Falsche Eingabe: Bitte geben Sie entweder 'hit' oder 'stand' ein.");
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
if (!hitSpieler1 && !hitSpieler2) {
|
||||
System.out.println("Das Spiel ist zu Ende");
|
||||
System.out.println(spieler1.getName() + " : " + spieler1.getHandKartenAnzahl() + " Punkte");
|
||||
System.out.println(spieler2.getName() + " : " + spieler2.getHandKartenAnzahl() + " Punkte");
|
||||
newSpiel.checkGewinner(spieler1,spieler2);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
scan.close(); // Scanner schließen
|
||||
}
|
||||
|
||||
}
|
Loading…
Reference in New Issue