This commit is contained in:
Fabian Keller
2020-12-03 11:20:12 +01:00
3 changed files with 24 additions and 26 deletions

View File

@@ -1,5 +1,5 @@
package de.jaujau.daten;
public enum Ablageort {
SPIELER, COMPUTER, ABLAGESTAPEL, ZIESTAPEL
SPIELER, COMPUTER, ABLAGESTAPEL, ZIEHSTAPEL
}

View File

@@ -20,7 +20,7 @@ public class Karte {
public Karte(Farbe f, Wert w) {
FARBE = f;
WERT = w;
Ablageort = de.jaujau.daten.Ablageort.ZIESTAPEL;
Ablageort = de.jaujau.daten.Ablageort.ZIEHSTAPEL;
}
/**
@@ -42,7 +42,6 @@ public class Karte {
/**
* Gibt den Ablageort der Karte zurück
* @return Ablageort der Karte
*
*/
public Ablageort getAblageort() {
return Ablageort;

View File

@@ -61,43 +61,42 @@ public class Kartensatz {
//!!!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
* Zieht eine Zufällige karte aus dem Ziehstapel für einen bestimmten Spieler und gibt den Karten dem Spieler auf die Hand
* Wenn keine Karten mehr auf dem Ziehstapel sind werden alle Karten vom Ablagestabel auf den Ziehstapel verschoben
* @param spieler Spieler der die Karte auf die Hand bekommen soll
*
*/
public boolean ziehen(Spieler spieler) {
//System.out.println("Start Ziehen");
//Ziestapel Prüfen
int ZiestapelAnzahl = getZiestapelAnzahl();
if(ZiestapelAnzahl < 1) {
//Alle Karten vom Ablagestapel ausßer letze auf den Ziestapel verschieben
//Ziehstapel Prüfen
int ZiehstapelAnzahl = getZiehstapelAnzahl();
if(ZiehstapelAnzahl < 1) {
//Alle Karten vom Ablagestapel ausßer letze auf den Ziehstapel verschieben
for(int i = 0; i < 32; i++) {
if((kartensatz[i].getAblageort() == Ablageort.ABLAGESTAPEL) && (i != letztekarte)) {
kartensatz[i].setAblageort(Ablageort.ZIESTAPEL);
kartensatz[i].setAblageort(Ablageort.ZIEHSTAPEL);
}
}
}
ZiestapelAnzahl = getZiestapelAnzahl();
//System.out.println("ZieStapel Anzahl " + ZiestapelAnzahl);
if(ZiestapelAnzahl > 0) {
ZiehstapelAnzahl = getZiehstapelAnzahl();
//System.out.println("ZiehStapel Anzahl " + ZiehstapelAnzahl);
if(ZiehstapelAnzahl > 0) {
//Ziekarte bestimmen und
//Zienummer auswählen
//System.out.println("Nummer wählen");
Random random = new Random();
int auswahl = random.nextInt(ZiestapelAnzahl);
int auswahl = random.nextInt(ZiehstapelAnzahl);
//System.out.println("Karte Ziehen " + auswahl);
//Wenn Karten auf dem Ziespabel verfügbar sind
int ZiestapelIndex = 0;
//Wenn Karten auf dem Ziehspabel verfügbar sind
int ZiehstapelIndex = 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("ZielStapelIndex " + ZiehstapelIndex);
if(kartensatz[i].getAblageort() == Ablageort.ZIEHSTAPEL) {
//System.out.println("Suche " + auswahl + " ZieIndex " + ZiehstapelIndex + " KartenIndex " + i);
if(auswahl == ZiehstapelIndex) {
//System.out.println("Ziehe Karte " + i + " " + kartensatz[i].toString());
//Karte im Ziestaple ist die die Ausgewählt wurde
//Karte im Ziehstaple ist die die Ausgewählt wurde
if(spieler == Spieler.SPIELER) {
kartensatz[i].setAblageort(Ablageort.SPIELER);
}
@@ -106,7 +105,7 @@ public class Kartensatz {
}
return true;
}
ZiestapelIndex++;
ZiehstapelIndex++;
}
}
@@ -208,14 +207,14 @@ public class Kartensatz {
//Funktion geprüft
/**
* Dies Funktion Prüft ob sich auf dem Ziestapel noch mindestes eine Karte Befindet
* Dies Funktion Prüft ob sich auf dem Ziehstapel noch mindestes eine Karte Befindet
* Wird nur Klassenintern Verwendet
* @return true wenn keine Karten Vorhanden, false wenn kein Karte vorhanden
*/
private int getZiestapelAnzahl() {
private int getZiehstapelAnzahl() {
int anzahl = 0;
for(Karte karte: kartensatz) {
if(karte.getAblageort() == Ablageort.ZIESTAPEL) {
if(karte.getAblageort() == Ablageort.ZIEHSTAPEL) {
anzahl++;
}
}