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 * 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 * @return String mit den Karten Eigenschaften
*/ */
@Override @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 * 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 * 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 * @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 //Ziestapel Prüfen
int ZiestapelAnzahl = getZiestapelAnzahl(); int ZiestapelAnzahl = getZiestapelAnzahl();
if(ZiestapelAnzahl < 1) { if(ZiestapelAnzahl < 1) {
//Karten vom Ablagestapel auf den Ziestapel verschieben //Alle Karten vom Ablagestapel ausßer letze auf den Ziestapel verschieben
for(Karte karte: kartensatz) { for(int i = 0; i < 32; i++) {
if(karte.getAblageort() == Ablageort.ABLAGESTAPEL) { if((kartensatz[i].getAblageort() == Ablageort.ABLAGESTAPEL) && (i != letztekarte)) {
karte.setAblageort(Ablageort.ZIESTAPEL); kartensatz[i].setAblageort(Ablageort.ZIESTAPEL);
} }
} }
} }
//Zienummer auswählen ZiestapelAnzahl = getZiestapelAnzahl();
Random random = new Random(); //System.out.println("ZieStapel Anzahl " + ZiestapelAnzahl);
int auswahl = random.nextInt(ZiestapelAnzahl); if(ZiestapelAnzahl > 0) {
System.out.println(auswahl); //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);
//Ziekarte bestimmen und //Wenn Karten auf dem Ziespabel verfügbar sind
int ZiestapelIndex = 0; int ZiestapelIndex = 0;
for(Karte karte: kartensatz) { for(int i = 0; i < 32; i++) {
if(karte.getAblageort() == Ablageort.ZIESTAPEL) { //System.out.println("ZielStapelIndex " + ZiestapelIndex);
if(auswahl == ZiestapelIndex) { if(kartensatz[i].getAblageort() == Ablageort.ZIESTAPEL) {
//Karte im Ziestaple ist die die Ausgewählt wurde //System.out.println("Suche " + auswahl + " ZieIndex " + ZiestapelIndex + " KartenIndex " + i);
if(spieler == Spieler.SPIELER) { if(auswahl == ZiestapelIndex) {
karte.setAblageort(Ablageort.SPIELER); //System.out.println("Ziehe Karte " + i + " " + kartensatz[i].toString());
} //Karte im Ziestaple ist die die Ausgewählt wurde
if(spieler == Spieler.COMPUTER) { if(spieler == Spieler.SPIELER) {
karte.setAblageort(Ablageort.COMPUTER); kartensatz[i].setAblageort(Ablageort.SPIELER);
}
if(spieler == Spieler.COMPUTER) {
kartensatz[i].setAblageort(Ablageort.COMPUTER);
}
return true;
} }
ZiestapelIndex++;
} }
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) { 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 * 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 * @return true wenn keine Karten Vorhanden, false wenn kein Karte vorhanden
*/ */
private int getZiestapelAnzahl() { private int getZiestapelAnzahl() {