Fertige Gameengine

master
Marc3308 2025-03-27 15:11:38 +01:00
parent e2b3034a36
commit dc18083541
5 changed files with 67 additions and 13 deletions

View File

@ -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;

View File

@ -10,6 +10,7 @@ public class Main {
//start der spiellogik
while (true){
//zeigt den spielstand
blackJackSpiel.Showspielstand();
if (blackJackSpiel.isgameend()){
if (!blackJackSpiel.gameend())return;

View File

@ -6,24 +6,36 @@ public class Hand {
private int punkte;
private ArrayList<Karte> 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();
}
}

View File

@ -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);
}
}
}

View File

@ -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<Karte> deck;
//kreiert ein neues karten deck mit allen 52 karten
public Kartenspiel(){
ArrayList<String> 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();
}
}