From df743f2a53d7cd934727a1cf7b7225ff06e07f76 Mon Sep 17 00:00:00 2001 From: mokoe Date: Wed, 30 Dec 2020 14:14:38 +0100 Subject: [PATCH] Implementierung der PruefeZug Funktion --- src/de/jaujau/spiellogik/Spielzug.java | 49 +++++++++++++++++++++++--- 1 file changed, 45 insertions(+), 4 deletions(-) diff --git a/src/de/jaujau/spiellogik/Spielzug.java b/src/de/jaujau/spiellogik/Spielzug.java index 934060e..346691c 100644 --- a/src/de/jaujau/spiellogik/Spielzug.java +++ b/src/de/jaujau/spiellogik/Spielzug.java @@ -2,6 +2,13 @@ package de.jaujau.spiellogik; import de.jaujau.daten.Kartensatz; import de.jaujau.daten.Spielerdaten; +import de.jaujau.daten.Wert; + +import java.util.ArrayList; + +import de.jaujau.daten.Farbe; +import de.jaujau.daten.Karte; +import de.jaujau.daten.Spieler; /** @@ -42,12 +49,46 @@ public class Spielzug { }*/ /** - * Funktion untersucht, ob der aktuelle Spieler aussetzen oder ziehen muss oder legen kann - * @return void + * Funktion untersucht, ob die Karte die der Spieler zu legen verusucht auch gelegt werden kann + * Sollte der Spieler gerade aussetzen müssen, kann nur eine 8 gelegt werden + * Muss der Spieler zwei Karten ziehen, kann nur eine 7 gelegt werden + * Gilt nichts von beidem muss die Karte zur vorhergelegten passen + * @param kartenindex Index der Karte die gelegt werden soll + * @return boolean */ public boolean pruefeZug(int kartenindex) { - - return true; + Farbe kartenfarbe = Spiel.kartensatz.getKarte(kartenindex).getFARBE(); + Wert kartenwert = Spiel.kartensatz.getKarte(kartenindex).getWERT(); + Wert letztekartewert = Spiel.kartensatz.getKarte(Spiel.kartensatz.getletzteKarte()).getWERT(); + Farbe letztekartefarbe = Spiel.kartensatz.getKarte(Spiel.kartensatz.getletzteKarte()).getFARBE(); + if(Spiel.getAussetzen() && kartenwert == Wert.ACHT) { + return true; + } + else if (Spiel.getZweiZiehen() && kartenwert == Wert.SIEBEN) { + return true; + } + else if (!Spiel.getAussetzen() && !Spiel.getZweiZiehen() && (kartenwert == letztekartewert || kartenfarbe == letztekartefarbe || kartenwert == Wert.BUBE)) { + return true; + } + else { + return false; + } + } + + /** + * Prüft, ob der Spieler eine Karte legen kann, indem jede Karte in der Hand des Spielers mit der Funktion pruefeZug geprüft wird + * @param spieler Spieler, der am Zug ist und dessen Hand + * @return + */ + public boolean zugMoeglich(Spieler spieler) { + boolean gefunden = false; + ArrayList Hand = Spiel.kartensatz.getHand(spieler); + for (int i = 0; i < Hand.size(); i++) { + if (pruefeZug(i)) { + gefunden = true; + } + } + return gefunden; } //