diff --git a/src/main/java/org/example/Logic/BlackJackSpiel.java b/src/main/java/org/example/Logic/BlackJackSpiel.java index e6ebeda..db79638 100644 --- a/src/main/java/org/example/Logic/BlackJackSpiel.java +++ b/src/main/java/org/example/Logic/BlackJackSpiel.java @@ -16,11 +16,15 @@ public class BlackJackSpiel { } public void Showspielstand(){ - + System.out.println("Ihre Karten: "); + System.out.println(hand.toString()); + System.out.println("Punkte: "+hand.getPunkte()); } public boolean isgameend(){ - return false; + if(hand.isBlackJack())return true; + else if(hand.getPunkte()>21)return true; + else return false; } public Hand getHand() { @@ -28,6 +32,9 @@ public class BlackJackSpiel { } public boolean gameend(){ + if(hand.isBlackJack())System.out.println("BlackJack! sie haben gewonnen"); + else if(hand.getPunkte()>21)System.out.println("Sie haben verloren"); + else System.out.println("Sie haben gewonnen"); System.out.println("Das Spiel ist zu Ende"); System.out.println("Wollen sie nochmal spielen? (j/n)"); if (System.console().readLine().equals("j"))return true; diff --git a/src/main/java/org/example/Main.java b/src/main/java/org/example/Main.java index 263864b..97d7824 100644 --- a/src/main/java/org/example/Main.java +++ b/src/main/java/org/example/Main.java @@ -10,6 +10,7 @@ public class Main { //start der spiellogik while (true){ + //zeigt den spielstand blackJackSpiel.Showspielstand(); if (blackJackSpiel.isgameend()){ if (!blackJackSpiel.gameend())return; diff --git a/src/main/java/org/example/Objekte/Hand.java b/src/main/java/org/example/Objekte/Hand.java index 4e1512a..21ba9c9 100644 --- a/src/main/java/org/example/Objekte/Hand.java +++ b/src/main/java/org/example/Objekte/Hand.java @@ -6,24 +6,36 @@ public class Hand { private int punkte; private ArrayList karten; + private Kartenspiel ks; public Hand(Kartenspiel ks){ - + this.ks=ks; + //nimm 2 karten aus dem deck + this.karten=new ArrayList<>(){{ + add(ks.getKarte()); + add(ks.getKarte()); + }}; + //nimm die punkte der karten und summiere sie + punkte=karten.stream().mapToInt(Karte::getPunkte).sum(); } public boolean isBlackJack(){ - return true; + return karten.size()==2 && punkte==21; } public String toString(){ - return ""; + String allthekarten=""; + for (Karte karte : karten)allthekarten+=karte.toString()+", "; + return allthekarten; } public int getPunkte() { - return 1; + return this.punkte; } public void addKarte(){ - + //nimm eine karte aus dem deck und füge sie der hand hinzu + karten.add(ks.getKarte()); + this.punkte=karten.getLast().getPunkte()==11 && punkte+11>21 ? punkte+1 : punkte+karten.getLast().getPunkte(); } } diff --git a/src/main/java/org/example/Objekte/Karte.java b/src/main/java/org/example/Objekte/Karte.java index a8bc155..59b1371 100644 --- a/src/main/java/org/example/Objekte/Karte.java +++ b/src/main/java/org/example/Objekte/Karte.java @@ -2,15 +2,28 @@ package org.example.Objekte; public class Karte { - public Karte(String farbe, String karte){ + private String farbe; + private String karte; + public Karte(String farbe, String karte){ + this.farbe=farbe; + this.karte=karte; } public String toString(){ - return ""; + return farbe+" "+karte; } public int getPunkte(){ - return 1; + switch (this.karte){ + case "A": + return 11; + case "J": + case "Q": + case "K": + return 10; + default: + return Integer.parseInt(this.karte); + } } } diff --git a/src/main/java/org/example/Objekte/Kartenspiel.java b/src/main/java/org/example/Objekte/Kartenspiel.java index d25b5e8..bd7a7e0 100644 --- a/src/main/java/org/example/Objekte/Kartenspiel.java +++ b/src/main/java/org/example/Objekte/Kartenspiel.java @@ -1,16 +1,37 @@ package org.example.Objekte; +import java.lang.reflect.Array; +import java.util.ArrayList; +import java.util.Random; + public class Kartenspiel { + private ArrayList deck; + //kreiert ein neues karten deck mit allen 52 karten public Kartenspiel(){ - + ArrayList kartentypen = new ArrayList<>(){{ + add("♠"); + add("♣"); + add("♥"); + add("♦"); + }}; + deck = new ArrayList<>(){{ + kartentypen.forEach(s ->{ + for (int i = 1; i <= 13; i++)add(new Karte(s,i==1 ? "A" : i==11 ? "J" : i==12 ? "Q" : i==13 ? "K" : String.valueOf(i))); + }); + }}; } + //gibt dir eine neue noch voranende karte oder eine exeption wenn das decklehr ist public Karte getKarte(){ - return new Karte("",""); + if(deck.isEmpty())throw new RuntimeException("Keine Karten mehr im Deck"); + Karte karte= deck.get(new Random().nextInt(deck.size())); + deck.remove(karte); + return karte; } + //returnt die anzahl an noch verbleibenden karten im deck public int getAnzahlKarten(){ - return 1; + return deck.size(); } }