Computer versucht jetzt immer 7 zu legen, falls Spieler nur noch eine

Karte hat
This commit is contained in:
mokoe
2021-01-08 13:34:16 +01:00
parent 61ea8ae605
commit dd3ace30e2

View File

@@ -23,10 +23,13 @@ public class Computer_gegner {
private Wert letztekartewert; private Wert letztekartewert;
private Farbe letztekartefarbe; private Farbe letztekartefarbe;
private ArrayList<Integer> hand; private ArrayList<Integer> hand;
private ArrayList<Integer> gegnerhand;
private boolean farbeInHand = false; private boolean farbeInHand = false;
private boolean wertInHand = false; private boolean wertInHand = false;
private boolean bubeInHand = false; private boolean bubeInHand = false;
private Kartensatz kartensatz; private Kartensatz kartensatz;
private boolean siebenInHand;
private boolean achtInHand;
// //
// Constructors // Constructors
// //
@@ -60,10 +63,15 @@ public class Computer_gegner {
farbeInHand = false; //Speichert, ob die aktuell liegende Farbe in der Hand des Computers vorhanden ist 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 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 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 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 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)) { if((wertHK == Wert.ACHT && farbeHK == letztekartefarbe) || (wertHK == Wert.ACHT && letztekartewert == Wert.ACHT)) {
achtInHand = true; 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: //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++) { for (int i = 0; i < hand.size(); i++) {
Farbe farbeHK = kartensatz.getKarte(hand.get(i)).getFARBE(); Farbe farbeHK = kartensatz.getKarte(hand.get(i)).getFARBE();
Wert wertHK = kartensatz.getKarte(hand.get(i)).getWERT(); Wert wertHK = kartensatz.getKarte(hand.get(i)).getWERT();
@@ -101,6 +114,16 @@ public class Computer_gegner {
//Debuging Teil ends //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);
}
}
}