From dd3ace30e24d17a8115b6fd26c7fb6313720a03a Mon Sep 17 00:00:00 2001 From: mokoe Date: Fri, 8 Jan 2021 13:34:16 +0100 Subject: [PATCH] Computer versucht jetzt immer 7 zu legen, falls Spieler nur noch eine Karte hat --- src/de/jaujau/spiellogik/Computer_gegner.java | 29 +++++++++++++++++-- 1 file changed, 26 insertions(+), 3 deletions(-) diff --git a/src/de/jaujau/spiellogik/Computer_gegner.java b/src/de/jaujau/spiellogik/Computer_gegner.java index 302b486..528e75b 100644 --- a/src/de/jaujau/spiellogik/Computer_gegner.java +++ b/src/de/jaujau/spiellogik/Computer_gegner.java @@ -23,10 +23,13 @@ public class Computer_gegner { private Wert letztekartewert; private Farbe letztekartefarbe; private ArrayList hand; + private ArrayList gegnerhand; private boolean farbeInHand = false; private boolean wertInHand = false; private boolean bubeInHand = false; private Kartensatz kartensatz; + private boolean siebenInHand; + private boolean achtInHand; // // Constructors // @@ -60,10 +63,15 @@ public class Computer_gegner { farbeInHand = false; //Speichert, ob die aktuell liegende Farbe in der Hand des Computers vorhanden ist wertInHand = false; //Speichert, ob der aktuell liegende Wert in der Hand des Computers vorhanden ist int rueckgabeindex = -1; //Speichert den Kartenindex, der Karte, die gelegt werden soll. Standard -1 für ziehen, falls keine passende Karte auf Hand - bubeInHand = false; //SPeichert, ob ein Bube in der Hand vorhanden ist + bubeInHand = false; //Speichert, ob ein Bube in der Hand vorhanden ist + gegnerhand = hand = kartensatz.getHand(Spieler.SPIELER); - boolean achtInHand = false; //Debugging + achtInHand = false; //Debugging + + + + siebenInHand = false; 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 @@ -85,11 +93,16 @@ public class Computer_gegner { if((wertHK == Wert.ACHT && farbeHK == letztekartefarbe) || (wertHK == Wert.ACHT && letztekartewert == Wert.ACHT)) { achtInHand = true; } + //// + + if((wertHK == Wert.SIEBEN && farbeHK == letztekartefarbe) || (wertHK == Wert.SIEBEN && letztekartewert == Wert.SIEBEN)) { + achtInHand = true; + } } //Teil zum Debuging, wo der Bot zuerst versucht 8 zu legen: - if(achtInHand = true) { + if(achtInHand && !ziehen) { for (int i = 0; i < hand.size(); i++) { Farbe farbeHK = kartensatz.getKarte(hand.get(i)).getFARBE(); Wert wertHK = kartensatz.getKarte(hand.get(i)).getWERT(); @@ -101,6 +114,16 @@ public class Computer_gegner { //Debuging Teil ends + if(gegnerhand.size() == 1 && siebenInHand && !aussetzen) { + for (int i = 0; i < hand.size(); i++) { + Farbe farbeHK = kartensatz.getKarte(hand.get(i)).getFARBE(); + Wert wertHK = kartensatz.getKarte(hand.get(i)).getWERT(); + if((farbeHK == letztekartefarbe && wertHK == Wert.SIEBEN) || (wertHK == letztekartewert && wertHK == Wert.SIEBEN)) { + return hand.get(i); + } + } + } +