Methoden zur Klasseninteraktion hinzugefuegt
This commit is contained in:
@@ -1,13 +1,14 @@
|
|||||||
package de.jaujau.spiellogik;
|
package de.jaujau.spiellogik;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.Random;
|
import java.util.Random;
|
||||||
|
|
||||||
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;
|
||||||
import de.jaujau.daten.Wert;
|
import de.jaujau.daten.Wert;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Diese Klasse pr<70>ft die Spielaktionen und alterniert zwischen Spieler und Computer
|
* Diese Klasse pr<70>ft die Spielaktionen und alterniert zwischen Spieler und Computer
|
||||||
* @author Fabian Keller
|
* @author Fabian Keller
|
||||||
@@ -19,8 +20,7 @@ public class Spiel {
|
|||||||
private boolean aussetzen;
|
private boolean aussetzen;
|
||||||
private boolean zwei_ziehen;
|
private boolean zwei_ziehen;
|
||||||
private int kartenZiehen;
|
private int kartenZiehen;
|
||||||
private Kartensatz kartensatz;
|
protected Kartensatz kartensatz;
|
||||||
private Farbe gelegteFarbe;
|
|
||||||
private Wert gelegterWert;
|
private Wert gelegterWert;
|
||||||
private Spielzug spielzug;
|
private Spielzug spielzug;
|
||||||
|
|
||||||
@@ -34,7 +34,6 @@ public class Spiel {
|
|||||||
return zwei_ziehen;
|
return zwei_ziehen;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* alterniert zwischen Spieler und Computer und legt Beginner fest
|
* alterniert zwischen Spieler und Computer und legt Beginner fest
|
||||||
*/
|
*/
|
||||||
@@ -70,55 +69,74 @@ public class Spiel {
|
|||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* pr<EFBFBD>ft ob eine Karte mit einem bestimmten Kartenindex gelegt werden kann
|
* falls eine Karte gelegt werden kann wird diese gelegt
|
||||||
* @param kartenindex
|
* @param kartenindex
|
||||||
*/
|
*/
|
||||||
private void karteLegen(int kartenindex) { //Nur Struktur<75>berlegung, W<EFBFBD>NSCHER?
|
private void karteLegen(int kartenindex) { //W<>NSCHER?
|
||||||
zugMoeglich();
|
if(pruefeHand(amZug)) {
|
||||||
if (spielzug.pruefeZug(kartenindex)) {
|
if (spielzug.pruefeZug(kartenindex)) {
|
||||||
kartensatz.ablegen(kartenindex);
|
kartensatz.ablegen(kartenindex);
|
||||||
}
|
spiel();
|
||||||
}
|
effekteSetzen(); //kartenindex <20>bergeben und anhand dessen effekte setzen
|
||||||
|
}//oder ziehen?
|
||||||
|
}// else kein Zug m<>glich
|
||||||
/**
|
else {
|
||||||
* 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;
|
|
||||||
}
|
|
||||||
else if(aussetzen) {
|
|
||||||
spiel();
|
|
||||||
aussetzen = false;
|
aussetzen = false;
|
||||||
}
|
}
|
||||||
else {
|
}//wann wird aussetzen auf false gesetzt
|
||||||
kartensatz.ziehen(amZug);
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* falls eine oder mehrere Karten gezogen werden k<>nnen, wird dies ausgef<65>hrt
|
||||||
|
*/
|
||||||
|
private void karteZiehen(){
|
||||||
|
if(pruefeHand(amZug)) {
|
||||||
|
if(zwei_ziehen) {
|
||||||
|
for(int i = 0; i < kartenZiehen; i++) {
|
||||||
|
kartensatz.ziehen(amZug);
|
||||||
|
}
|
||||||
|
kartenZiehen = 0;
|
||||||
|
zwei_ziehen = false;
|
||||||
|
spiel();
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
kartensatz.ziehen(amZug);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* pr<EFBFBD>ft ob ein Zug <20>berhaupt m<>glich ist und lie<69>t Werte zum weiterarbeiten ein
|
* setzt Effekt-Variablen
|
||||||
*/
|
*/
|
||||||
private void zugMoeglich() {
|
private void effekteSetzen() { //was passiert wenn 2 gezogen wurde und dann der n<>chste spieler diese Funktion ausf<73>hrt.
|
||||||
gelegteFarbe = kartensatz.getKarte(kartensatz.getletzteKarte()).getFARBE();
|
|
||||||
gelegterWert = kartensatz.getKarte(kartensatz.getletzteKarte()).getWERT();
|
gelegterWert = kartensatz.getKarte(kartensatz.getletzteKarte()).getWERT();
|
||||||
if(gelegterWert == Wert.ACHT) {
|
if(gelegterWert == Wert.ACHT) {
|
||||||
aussetzen = true;
|
aussetzen = true;
|
||||||
}
|
}
|
||||||
else {
|
|
||||||
aussetzen = false;
|
|
||||||
}
|
|
||||||
if(gelegterWert == Wert.SIEBEN) {
|
if(gelegterWert == Wert.SIEBEN) {
|
||||||
zwei_ziehen = true;
|
zwei_ziehen = true;
|
||||||
kartenZiehen += 2;
|
kartenZiehen += 2;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* pr<70>ft ob, wenn eine 8 gelegt wurde, eine 8 auf der Hand ist
|
||||||
|
* und der Zug somit m<>glich ist
|
||||||
|
* @return true falls ein Zug m<>glich ist
|
||||||
|
* @return false falls kein Zug m<>glich ist
|
||||||
|
*/
|
||||||
|
private boolean pruefeHand(Spieler amZug) {
|
||||||
|
if(aussetzen) {
|
||||||
|
ArrayList<Integer> handvonSpieler = kartensatz.getHand(amZug);
|
||||||
|
for(int i = 0; i < handvonSpieler.size(); i++) {
|
||||||
|
if(kartensatz.getKarte(handvonSpieler.get(i)).getWERT() == Wert.ACHT) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user