This commit is contained in:
Sebastian Kacza
2020-12-12 16:14:46 +01:00

View File

@@ -1,5 +1,7 @@
package de.jaujau.spiellogik; package de.jaujau.spiellogik;
import java.util.Random;
import de.jaujau.daten.Farbe; import de.jaujau.daten.Farbe;
import de.jaujau.daten.Kartensatz; import de.jaujau.daten.Kartensatz;
import de.jaujau.daten.Spieler; import de.jaujau.daten.Spieler;
@@ -7,55 +9,122 @@ import de.jaujau.daten.Wert;
/** /**
* Class Spiel * Diese Klasse pr<70>ft die Spielaktionen und alterniert zwischen Spieler und Computer
* @author Fabian Keller
*/ */
public class Spiel { public class Spiel {
private Spieler spieler;
private Spieler amZug; private Spieler amZug;
private boolean spielgestartet = false;
private boolean aussetzen; private boolean aussetzen;
private boolean zwei_ziehen; private boolean zwei_ziehen;
private int kartenZiehen;
private Kartensatz kartensatz; private Kartensatz kartensatz;
private Farbe gelegteFarbe;
private Wert gelegterWert;
/**
* alterniert zwischen Spieler und Computer und legt Beginner fest
*/
private void spiel() { private void spiel() {
if(!spielgestartet) { //Starter durch zufall bestimmen
Random zufallszahl = new Random();
int zahl = zufallszahl.nextInt(1);
if(zahl == 1) {
amZug = Spieler.SPIELER;
}
else {
amZug = Spieler.COMPUTER;
}
spielgestartet = true;
kartensatz.ablegen(zufallszahl.nextInt(31));
return;
}
if(amZug == Spieler.SPIELER) {
amZug = Spieler.COMPUTER;
}
else {
amZug= Spieler.SPIELER;
}
} }
private void zug(Spieler name) {
}
private boolean pruefeMoeglichkeitLegen(int Kartenindex) { //Nur Struktur<75>berlegung, W<>NSCHER? /**
* pr<70>ft ob eine Karte mit einem bestimmten Kartenindex gelegt werden kann
* @param kartenindex
*/
private void karteLegen(int kartenindex) { //Nur Struktur<75>berlegung, W<>NSCHER?
zugMoeglich();
Farbe legenFarbe; Farbe legenFarbe;
Wert legenWert; Wert legenWert;
Farbe liegtFarbe; legenFarbe = kartensatz.getKarte(kartenindex).getFARBE();
Wert liegtWert; legenWert = kartensatz.getKarte(kartenindex).getWERT();
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) { if(zwei_ziehen && legenWert == Wert.SIEBEN) {
return true; kartensatz.ablegen(kartenindex);
spiel();
return;
} }
if(liegtWert == Wert.ACHT && legenWert == Wert.ACHT) { if(aussetzen && legenWert == Wert.ACHT) {
return true; kartensatz.ablegen(kartenindex);
spiel();
return;
} }
if(!aussetzen && !zwei_ziehen) { if(!aussetzen && !zwei_ziehen) {
if(legenFarbe == liegtFarbe) { if(legenFarbe == gelegteFarbe) {
return true; kartensatz.ablegen(kartenindex);
spiel();
return;
} }
if(legenWert == liegtWert) { if(legenWert == gelegterWert) {
return true; kartensatz.ablegen(kartenindex);
spiel();
return;
} }
} }
return false; if(aussetzen) {
spiel();
aussetzen = false;
}
} }
private boolean pruefeMoeglichkeitZiehen(int Kartenindex) {
if(kartensatz.getKarte(kartensatz.getletzteKarte()).getWERT() == Wert.ACHT) { /**
return false; * pr<70>ft ob eine Karte gezogen werden kann
*/
private void karteZiehen(){
zugMoeglich();
if(zwei_ziehen) {
for(int i = 0; i < kartenZiehen; i++) {
kartensatz.ziehen(amZug);
}
spiel();
kartenZiehen = 0;
zwei_ziehen = false;
}
if(aussetzen) {
spiel();
aussetzen = false;
}
}
/**
* pr<70>ft ob ein Zug <20>berhaupt m<>glich ist und lie<69>t Werte zum weiterarbeiten ein
*/
private void zugMoeglich() {
gelegteFarbe = kartensatz.getKarte(kartensatz.getletzteKarte()).getFARBE();
gelegterWert = kartensatz.getKarte(kartensatz.getletzteKarte()).getWERT();
if(gelegterWert == Wert.ACHT) {
aussetzen = true;
}
else {
aussetzen = false;
}
if(gelegterWert == Wert.SIEBEN) {
zwei_ziehen = true;
kartenZiehen += 2;
} }
return true;
} }
} }