Klasse Karte fertig, Klasse Kartensatz teilweise fertig

This commit is contained in:
Sebastian Kacza
2020-12-02 20:59:42 +01:00
parent 2c864c3efb
commit 5f53fe854a
2 changed files with 45 additions and 30 deletions

View File

@@ -57,7 +57,7 @@ public class Karte {
/**
* Gibt die Eigenschaften der Karte aus Text aus
* Diese Methode dient zum Testen der Funktion
* !!!Diese Methode ist nur für Debug-Ausgaben notwendig und kann Später entfernt werden!!!
* @return String mit den Karten Eigenschaften
*/
@Override

View File

@@ -58,48 +58,62 @@ public class Kartensatz {
}
//!!!Funktioniert noch nicht
//!!!Es kann noch zu fehler kommen
/**
* 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) {
public boolean ziehen(Spieler spieler) {
//System.out.println("Start Ziehen");
//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);
//Alle Karten vom Ablagestapel ausßer letze auf den Ziestapel verschieben
for(int i = 0; i < 32; i++) {
if((kartensatz[i].getAblageort() == Ablageort.ABLAGESTAPEL) && (i != letztekarte)) {
kartensatz[i].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++;
}
ZiestapelAnzahl = getZiestapelAnzahl();
//System.out.println("ZieStapel Anzahl " + ZiestapelAnzahl);
if(ZiestapelAnzahl > 0) {
//Ziekarte bestimmen und
//Zienummer auswählen
//System.out.println("Nummer wählen");
Random random = new Random();
int auswahl = random.nextInt(ZiestapelAnzahl);
//System.out.println("Karte Ziehen " + auswahl);
//Wenn Karten auf dem Ziespabel verfügbar sind
int ZiestapelIndex = 0;
for(int i = 0; i < 32; i++) {
//System.out.println("ZielStapelIndex " + ZiestapelIndex);
if(kartensatz[i].getAblageort() == Ablageort.ZIESTAPEL) {
//System.out.println("Suche " + auswahl + " ZieIndex " + ZiestapelIndex + " KartenIndex " + i);
if(auswahl == ZiestapelIndex) {
//System.out.println("Ziehe Karte " + i + " " + kartensatz[i].toString());
//Karte im Ziestaple ist die die Ausgewählt wurde
if(spieler == Spieler.SPIELER) {
kartensatz[i].setAblageort(Ablageort.SPIELER);
}
if(spieler == Spieler.COMPUTER) {
kartensatz[i].setAblageort(Ablageort.COMPUTER);
}
return true;
}
ZiestapelIndex++;
}
}
}
else {
System.out.println("Keine Karten zum ziehen verfügbar!");
return false;
}
return false;
}
@@ -142,7 +156,7 @@ public class Kartensatz {
}
//Kommt noch
//Methode kommt noch
public void SetWunschfarbe(Farbe farbe) {
}
@@ -150,6 +164,7 @@ public class Kartensatz {
/**
* Dies Funktion Prüft ob sich auf dem Ziestapel noch mindestes eine Karte Befindet
* Wird nur Klassenintern Verwendet
* @return true wenn keine Karten Vorhanden, false wenn kein Karte vorhanden
*/
private int getZiestapelAnzahl() {