Fertige Gameengine
parent
e2b3034a36
commit
dc18083541
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -10,6 +10,7 @@ public class Main {
|
|||
|
||||
//start der spiellogik
|
||||
while (true){
|
||||
//zeigt den spielstand
|
||||
blackJackSpiel.Showspielstand();
|
||||
if (blackJackSpiel.isgameend()){
|
||||
if (!blackJackSpiel.gameend())return;
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue