This commit is contained in:
ekresse
2020-12-03 12:57:14 +01:00
4 changed files with 74 additions and 31 deletions

View File

@@ -1,5 +1,5 @@
package de.jaujau.daten; package de.jaujau.daten;
public enum Ablageort { 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) { public Karte(Farbe f, Wert w) {
FARBE = f; FARBE = f;
WERT = w; 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 * Gibt den Ablageort der Karte zurück
* @return Ablageort der Karte * @return Ablageort der Karte
*
*/ */
public Ablageort getAblageort() { public Ablageort getAblageort() {
return Ablageort; return Ablageort;

View File

@@ -61,43 +61,42 @@ public class Kartensatz {
//!!!Es kann noch zu fehler kommen //!!!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 Ziehstapel 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 Ziehstapel sind werden alle Karten vom Ablagestabel auf den Ziehstapel verschoben
* @param spieler Spieler der die Karte auf die Hand bekommen soll * @param spieler Spieler der die Karte auf die Hand bekommen soll
*
*/ */
public boolean ziehen(Spieler spieler) { public boolean ziehen(Spieler spieler) {
//System.out.println("Start Ziehen"); //System.out.println("Start Ziehen");
//Ziestapel Prüfen //Ziehstapel Prüfen
int ZiestapelAnzahl = getZiestapelAnzahl(); int ZiehstapelAnzahl = getZiehstapelAnzahl();
if(ZiestapelAnzahl < 1) { if(ZiehstapelAnzahl < 1) {
//Alle Karten vom Ablagestapel ausßer letze auf den Ziestapel verschieben //Alle Karten vom Ablagestapel ausßer letze auf den Ziehstapel verschieben
for(int i = 0; i < 32; i++) { for(int i = 0; i < 32; i++) {
if((kartensatz[i].getAblageort() == Ablageort.ABLAGESTAPEL) && (i != letztekarte)) { if((kartensatz[i].getAblageort() == Ablageort.ABLAGESTAPEL) && (i != letztekarte)) {
kartensatz[i].setAblageort(Ablageort.ZIESTAPEL); kartensatz[i].setAblageort(Ablageort.ZIEHSTAPEL);
} }
} }
} }
ZiestapelAnzahl = getZiestapelAnzahl(); ZiehstapelAnzahl = getZiehstapelAnzahl();
//System.out.println("ZieStapel Anzahl " + ZiestapelAnzahl); //System.out.println("ZiehStapel Anzahl " + ZiehstapelAnzahl);
if(ZiestapelAnzahl > 0) { if(ZiehstapelAnzahl > 0) {
//Ziekarte bestimmen und //Ziekarte bestimmen und
//Zienummer auswählen //Zienummer auswählen
//System.out.println("Nummer wählen"); //System.out.println("Nummer wählen");
Random random = new Random(); Random random = new Random();
int auswahl = random.nextInt(ZiestapelAnzahl); int auswahl = random.nextInt(ZiehstapelAnzahl);
//System.out.println("Karte Ziehen " + auswahl); //System.out.println("Karte Ziehen " + auswahl);
//Wenn Karten auf dem Ziespabel verfügbar sind //Wenn Karten auf dem Ziehspabel verfügbar sind
int ZiestapelIndex = 0; int ZiehstapelIndex = 0;
for(int i = 0; i < 32; i++) { for(int i = 0; i < 32; i++) {
//System.out.println("ZielStapelIndex " + ZiestapelIndex); //System.out.println("ZielStapelIndex " + ZiehstapelIndex);
if(kartensatz[i].getAblageort() == Ablageort.ZIESTAPEL) { if(kartensatz[i].getAblageort() == Ablageort.ZIEHSTAPEL) {
//System.out.println("Suche " + auswahl + " ZieIndex " + ZiestapelIndex + " KartenIndex " + i); //System.out.println("Suche " + auswahl + " ZieIndex " + ZiehstapelIndex + " KartenIndex " + i);
if(auswahl == ZiestapelIndex) { if(auswahl == ZiehstapelIndex) {
//System.out.println("Ziehe Karte " + i + " " + kartensatz[i].toString()); //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) { if(spieler == Spieler.SPIELER) {
kartensatz[i].setAblageort(Ablageort.SPIELER); kartensatz[i].setAblageort(Ablageort.SPIELER);
} }
@@ -106,7 +105,7 @@ public class Kartensatz {
} }
return true; return true;
} }
ZiestapelIndex++; ZiehstapelIndex++;
} }
} }
@@ -208,14 +207,14 @@ public class Kartensatz {
//Funktion geprüft //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 * 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 getZiehstapelAnzahl() {
int anzahl = 0; int anzahl = 0;
for(Karte karte: kartensatz) { for(Karte karte: kartensatz) {
if(karte.getAblageort() == Ablageort.ZIESTAPEL) { if(karte.getAblageort() == Ablageort.ZIEHSTAPEL) {
anzahl++; anzahl++;
} }
} }

View File

@@ -1,8 +1,9 @@
package de.jaujau.spiellogik; package de.jaujau.spiellogik;
import java.util.*; import de.jaujau.daten.Farbe;
import de.jaujau.daten.Kartensatz; import de.jaujau.daten.Kartensatz;
import de.jaujau.daten.Spieler;
import de.jaujau.daten.Wert;
/** /**
@@ -10,7 +11,51 @@ import de.jaujau.daten.Kartensatz;
*/ */
public class Spiel { public class Spiel {
private Spieler spieler;
private Spieler amZug;
private boolean aussetzen;
private boolean zwei_ziehen;
private Kartensatz kartensatz;
private void spiel() {
} }
private void zug(Spieler name) {
}
private boolean pruefeMoeglichkeitLegen(int Kartenindex) { //Nur Struktur<75>berlegung, W<>NSCHER?
Farbe legenFarbe;
Wert legenWert;
Farbe liegtFarbe;
Wert liegtWert;
legenFarbe = kartensatz.getKarte(Kartenindex).getFARBE();
legenWert = kartensatz.getKarte(Kartenindex).getWERT();
liegtFarbe = kartensatz.getKarte(kartensatz.getletzteKarte()).getFARBE();
liegtWert = kartensatz.getKarte(kartensatz.getletzteKarte()).getWERT();
if(liegtWert == Wert.SIEBEN && legenWert == Wert.SIEBEN) {
return true;
}
if(liegtWert == Wert.ACHT && legenWert == Wert.ACHT) {
return true;
}
if(!aussetzen && !zwei_ziehen) {
if(legenFarbe == liegtFarbe) {
return true;
}
if(legenWert == liegtWert) {
return true;
}
}
return false;
}
private boolean pruefeMoeglichkeitZiehen(int Kartenindex) {
if(kartensatz.getKarte(kartensatz.getletzteKarte()).getWERT() == Wert.ACHT) {
return false;
}
return true;
}
}