Fertige Gameengine
parent
e2b3034a36
commit
dc18083541
|
|
@ -16,11 +16,15 @@ public class BlackJackSpiel {
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Showspielstand(){
|
public void Showspielstand(){
|
||||||
|
System.out.println("Ihre Karten: ");
|
||||||
|
System.out.println(hand.toString());
|
||||||
|
System.out.println("Punkte: "+hand.getPunkte());
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isgameend(){
|
public boolean isgameend(){
|
||||||
return false;
|
if(hand.isBlackJack())return true;
|
||||||
|
else if(hand.getPunkte()>21)return true;
|
||||||
|
else return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Hand getHand() {
|
public Hand getHand() {
|
||||||
|
|
@ -28,6 +32,9 @@ public class BlackJackSpiel {
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean gameend(){
|
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("Das Spiel ist zu Ende");
|
||||||
System.out.println("Wollen sie nochmal spielen? (j/n)");
|
System.out.println("Wollen sie nochmal spielen? (j/n)");
|
||||||
if (System.console().readLine().equals("j"))return true;
|
if (System.console().readLine().equals("j"))return true;
|
||||||
|
|
|
||||||
|
|
@ -10,6 +10,7 @@ public class Main {
|
||||||
|
|
||||||
//start der spiellogik
|
//start der spiellogik
|
||||||
while (true){
|
while (true){
|
||||||
|
//zeigt den spielstand
|
||||||
blackJackSpiel.Showspielstand();
|
blackJackSpiel.Showspielstand();
|
||||||
if (blackJackSpiel.isgameend()){
|
if (blackJackSpiel.isgameend()){
|
||||||
if (!blackJackSpiel.gameend())return;
|
if (!blackJackSpiel.gameend())return;
|
||||||
|
|
|
||||||
|
|
@ -6,24 +6,36 @@ public class Hand {
|
||||||
|
|
||||||
private int punkte;
|
private int punkte;
|
||||||
private ArrayList<Karte> karten;
|
private ArrayList<Karte> karten;
|
||||||
|
private Kartenspiel ks;
|
||||||
|
|
||||||
public Hand(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(){
|
public boolean isBlackJack(){
|
||||||
return true;
|
return karten.size()==2 && punkte==21;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String toString(){
|
public String toString(){
|
||||||
return "";
|
String allthekarten="";
|
||||||
|
for (Karte karte : karten)allthekarten+=karte.toString()+", ";
|
||||||
|
return allthekarten;
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getPunkte() {
|
public int getPunkte() {
|
||||||
return 1;
|
return this.punkte;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void addKarte(){
|
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 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(){
|
public String toString(){
|
||||||
return "";
|
return farbe+" "+karte;
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getPunkte(){
|
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;
|
package org.example.Objekte;
|
||||||
|
|
||||||
|
import java.lang.reflect.Array;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Random;
|
||||||
|
|
||||||
public class Kartenspiel {
|
public class Kartenspiel {
|
||||||
|
private ArrayList<Karte> deck;
|
||||||
|
|
||||||
|
//kreiert ein neues karten deck mit allen 52 karten
|
||||||
public Kartenspiel(){
|
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(){
|
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(){
|
public int getAnzahlKarten(){
|
||||||
return 1;
|
return deck.size();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue