diff --git a/src/de/jaujau/spiellogik/Computer_gegner.java b/src/de/jaujau/spiellogik/Computer_gegner.java index b06d7d0..31db499 100644 --- a/src/de/jaujau/spiellogik/Computer_gegner.java +++ b/src/de/jaujau/spiellogik/Computer_gegner.java @@ -2,7 +2,12 @@ package de.jaujau.spiellogik; +import java.util.ArrayList; + +import de.jaujau.daten.Farbe; import de.jaujau.daten.Kartensatz; +import de.jaujau.daten.Spieler; +import de.jaujau.daten.Wert; /** @@ -38,10 +43,43 @@ public class Computer_gegner { */ public void pruefeZug(Kartensatz kartensatz) { - } - + } + /** + * Funktion sucht aus, welche Karte der Computer Gegner legt, nach verschiedenen Parametern + * Zuerst sollen Karten gelegt werden, welche den aktuell geltenden Effekt kontern, falls einer liegt + * Danach werden Effektkarten der aktuellen Farbe gelegt + * Als nächstes Werden Karten der aktuellen Farbe gelegt + * Dann Karten die den aktuellenw Wert besitzen + * Zuletzt Buben um sich eine Farbe zu wünschen + * @param keine + * @return Kartenindex der Karte die gelegt werden soll + */ public int cpu_Zug() { - return 0; + Spiel spiel = Anwendung.getAktuellesSpiel(); //Erzeugt ein Abbild des aktuellen Spiels + Kartensatz kartensatz = spiel.getKartensatz(); //Erzeugt ein Abbild des aktuellen Kartensatzes, mit stand der Karten + Wert letztekartewert = kartensatz.getKarte(kartensatz.getletzteKarte()).getWERT(); //Speichert den Wert der Karte, die zuletzt gelegt wurde + Farbe letztekartefarbe = kartensatz.getKarte(kartensatz.getletzteKarte()).getFARBE(); //Speichert die Farbe der Karte, die zuletzt gelegt wurde + ArrayList hand = kartensatz.getHand(Spieler.COMPUTER); //Speichert die Karten, die der Computer aktuell auf der Hand hat + boolean farbeInHand = false; //Speichert, ob die aktuell liegende Farbe in der Hand des Computers vorhanden ist + boolean wertInHand = false; //Speichert, ob der aktuell liegende Wert in der Hand des Computers vorhanden ist + int rueckgabeindex = 0; //Speichert den Kartenindex, der Karte, die gelegt werden soll + + for(int i = 0; i < hand.size(); i++) { //Schleife geht alle Karten in der Hand des Computers durch + Farbe farbeHK = kartensatz.getKarte(hand.get(i)).getFARBE(); //Holt sich die Farbe der aktuellen Handkarte + Wert wertHK = kartensatz.getKarte(hand.get(i)).getWERT(); //Holt sich den Wert der aktuellen Handkarte + + if(farbeHK == letztekartefarbe) { //Prüft ob Farbe der aktuellen Handkarte zur offen liegenden Karte passt + farbeInHand = true; + } + + if(wertHK == letztekartewert) { //Prüft ob Wert der aktuellen Handkarte zur liegenden Karte passt + wertInHand = true; + } + } + + + + return rueckgabeindex; } public int cpuTest() { diff --git a/src/de/jaujau/spiellogik/Spielzug.java b/src/de/jaujau/spiellogik/Spielzug.java index 794e701..073ef3b 100644 --- a/src/de/jaujau/spiellogik/Spielzug.java +++ b/src/de/jaujau/spiellogik/Spielzug.java @@ -47,7 +47,6 @@ public class Spielzug { spiel(); aussetzen = false; }*/ - /** * 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 @@ -57,8 +56,8 @@ public class Spielzug { * @return boolean */ public boolean pruefeZug(int kartenindex) { + Spiel Spiel = Anwendung.getAktuellesSpiel(); Kartensatz kartensatz = Spiel.getKartensatz(); - Farbe kartenfarbe = kartensatz.getKarte(kartenindex).getFARBE(); Wert kartenwert = kartensatz.getKarte(kartenindex).getWERT(); Wert letztekartewert = kartensatz.getKarte(kartensatz.getletzteKarte()).getWERT();