Klasse Karte Implementiert, Klasse Kartensatz Implementiert (noch nicht

alle Methoden vorhanden/funktionieren)
This commit is contained in:
Sebastian Kacza
2020-12-02 18:36:13 +01:00
parent 0138fe3906
commit 2c864c3efb
2 changed files with 216 additions and 6 deletions

View File

@@ -2,11 +2,67 @@ package de.jaujau.daten;
/**
* Class Karte
* Klasse Karte
* Verwaltet die Daten einer Spielkarte
* @author Sebastian Kacza
*/
public class Karte {
private Farbe FARBE;
private Wert WERT;
private Ablageort Ablageort;
/**
* Konstruktor für die Klasse Karte
* Ablageort dird Standartmäßig auf Zielstapel gestezt
* @param f Farbe der Karte
* @param w Wert der Karte
*/
public Karte(Farbe f, Wert w) {
FARBE = f;
WERT = w;
Ablageort = de.jaujau.daten.Ablageort.ZIESTAPEL;
}
/**
* Gibt die Farbe der Karte zurück
* @return Farbe der Karte
*/
public Farbe getFARBE() {
return FARBE;
}
/**
* Gibt den Wert einer Karte zurück
* @return Wert der Karte
*/
public Wert getWERT() {
return WERT;
}
/**
* Gibt den Ablageort der Karte zurück
* @return Ablageort der Karte
*/
public Ablageort getAblageort() {
return Ablageort;
}
/**
* Ändert den Ablageoert der Karte
* @param ablageort Neuer Ablageort der Karte
*/
public void setAblageort(Ablageort ablageort) {
Ablageort = ablageort;
}
/**
* Gibt die Eigenschaften der Karte aus Text aus
* Diese Methode dient zum Testen der Funktion
* @return String mit den Karten Eigenschaften
*/
@Override
public String toString() {
return "Karte [FARBE=" + FARBE + ", WERT=" + WERT + ", Ablageort=" + Ablageort + "]";
}
}

View File

@@ -1,12 +1,166 @@
package de.jaujau.daten;
import java.util.Random;
/**
* Class Kartensatz
* Diese Klasse Verwaltet den Kartensatz
* @author Sebastian Kacza
*/
public class Kartensatz {
public Karte kartensatz[];
int letztekarte;
/**
* Konstruktor für den Kartensatz
* Erstellt einen Neuen Kartensatz mit 32 Karten in einem Array
* Die Karten haben dabei die Reihenfolge eines Standart Skat Blattes
*/
public Kartensatz() {
letztekarte = 0;
kartensatz = new Karte[32];
//Standart Skat Kartensatz erstellen
kartensatz[0] = new Karte(Farbe.KARO, Wert.SIEBEN);
kartensatz[1] = new Karte(Farbe.KARO, Wert.ACHT);
kartensatz[2] = new Karte(Farbe.KARO, Wert.NEUN);
kartensatz[3] = new Karte(Farbe.KARO, Wert.ZEHN);
kartensatz[4] = new Karte(Farbe.KARO, Wert.BUBE);
kartensatz[5] = new Karte(Farbe.KARO, Wert.DAME);
kartensatz[6] = new Karte(Farbe.KARO, Wert.KOENING);
kartensatz[7] = new Karte(Farbe.KARO, Wert.ASS);
kartensatz[8] = new Karte(Farbe.HERZ, Wert.SIEBEN);
kartensatz[9] = new Karte(Farbe.HERZ, Wert.ACHT);
kartensatz[10] = new Karte(Farbe.HERZ, Wert.NEUN);
kartensatz[11] = new Karte(Farbe.HERZ, Wert.ZEHN);
kartensatz[12] = new Karte(Farbe.HERZ, Wert.BUBE);
kartensatz[13] = new Karte(Farbe.HERZ, Wert.DAME);
kartensatz[14] = new Karte(Farbe.HERZ, Wert.KOENING);
kartensatz[15] = new Karte(Farbe.HERZ, Wert.ASS);
kartensatz[16] = new Karte(Farbe.PIK, Wert.SIEBEN);
kartensatz[17] = new Karte(Farbe.PIK, Wert.ACHT);
kartensatz[18] = new Karte(Farbe.PIK, Wert.NEUN);
kartensatz[19] = new Karte(Farbe.PIK, Wert.ZEHN);
kartensatz[20] = new Karte(Farbe.PIK, Wert.BUBE);
kartensatz[21] = new Karte(Farbe.PIK, Wert.DAME);
kartensatz[22] = new Karte(Farbe.PIK, Wert.KOENING);
kartensatz[23] = new Karte(Farbe.PIK, Wert.ASS);
kartensatz[24] = new Karte(Farbe.KREUZ, Wert.SIEBEN);
kartensatz[25] = new Karte(Farbe.KREUZ, Wert.ACHT);
kartensatz[26] = new Karte(Farbe.KREUZ, Wert.NEUN);
kartensatz[27] = new Karte(Farbe.KREUZ, Wert.ZEHN);
kartensatz[28] = new Karte(Farbe.KREUZ, Wert.BUBE);
kartensatz[29] = new Karte(Farbe.KREUZ, Wert.DAME);
kartensatz[30] = new Karte(Farbe.KREUZ, Wert.KOENING);
kartensatz[31] = new Karte(Farbe.KREUZ, Wert.ASS);
}
//!!!Funktioniert noch nicht
/**
* Zieht eine Zufällige karte aus dem Ziestapel für einen bestimmten Spieler und gibt den Karten dem Spieler auf die Hand
* Wenn keine Karten mehr auf dem Ziestapel sind werden alle Karten vom Ablagestabel auf den Ziestapel verschoben
* @param spieler Spieler der die Karte auf die Hand bekommen soll
*/
public void ziehen(Spieler spieler) {
//Ziestapel Prüfen
int ZiestapelAnzahl = getZiestapelAnzahl();
if(ZiestapelAnzahl < 1) {
//Karten vom Ablagestapel auf den Ziestapel verschieben
for(Karte karte: kartensatz) {
if(karte.getAblageort() == Ablageort.ABLAGESTAPEL) {
karte.setAblageort(Ablageort.ZIESTAPEL);
}
}
}
//Zienummer auswählen
Random random = new Random();
int auswahl = random.nextInt(ZiestapelAnzahl);
System.out.println(auswahl);
//Ziekarte bestimmen und
int ZiestapelIndex = 0;
for(Karte karte: kartensatz) {
if(karte.getAblageort() == Ablageort.ZIESTAPEL) {
if(auswahl == ZiestapelIndex) {
//Karte im Ziestaple ist die die Ausgewählt wurde
if(spieler == Spieler.SPIELER) {
karte.setAblageort(Ablageort.SPIELER);
}
if(spieler == Spieler.COMPUTER) {
karte.setAblageort(Ablageort.COMPUTER);
}
}
ZiestapelIndex++;
}
}
}
/**
* legt die Karte mit der KartenID x auf den Ablagestapel
* Speicher die KartenID der zuletzgelegt Karte in "letztekarte"
* @param kartenid ID der Karte die Abgeget werden Soll
*/
public void ablegen(int kartenID) {
if((kartenID >= 0) && (kartenID < 32)){
kartensatz[kartenID].setAblageort(Ablageort.ABLAGESTAPEL);
letztekarte = kartenID;
}
}
/**
* gibt die ID der Kartezurück die als letztes auf dem Ablagestabel gelegt wurde
* @return ID der zuletzt gelegten Karte
*/
public int getletzteKarte() {
return letztekarte;
}
//Methode get Hand
//Kommt noch
/**
* Gibt eine Karte aus dem Kartensatz zurück
* @param kartenid ID Der Karte (0 - 31)
* @return Karte auf dem Kartensatz mit der ID x
*/
public Karte getKarte(int kartenID) {
if((kartenID >= 0) && (kartenID < 32)){
return kartensatz[kartenID];
}
else {
return null;
}
}
//Kommt noch
public void SetWunschfarbe(Farbe farbe) {
}
/**
* Dies Funktion Prüft ob sich auf dem Ziestapel noch mindestes eine Karte Befindet
* @return true wenn keine Karten Vorhanden, false wenn kein Karte vorhanden
*/
private int getZiestapelAnzahl() {
int anzahl = 0;
for(Karte karte: kartensatz) {
if(karte.getAblageort() == Ablageort.ZIESTAPEL) {
anzahl++;
}
}
return anzahl;
}
}