Verschiebung der Variablenübergabe für ziehen und aussetzen in den
Funktionsaufruf
This commit is contained in:
@@ -18,7 +18,6 @@ public class Computer_gegner {
|
|||||||
//
|
//
|
||||||
// Fields
|
// Fields
|
||||||
//
|
//
|
||||||
Spiel spiel;
|
|
||||||
Wert letztekartewert;
|
Wert letztekartewert;
|
||||||
Farbe letztekartefarbe;
|
Farbe letztekartefarbe;
|
||||||
ArrayList<Integer> hand;
|
ArrayList<Integer> hand;
|
||||||
@@ -61,19 +60,17 @@ public class Computer_gegner {
|
|||||||
* Als n<>chstes Werden Karten der aktuellen Farbe gelegt
|
* Als n<>chstes Werden Karten der aktuellen Farbe gelegt
|
||||||
* Dann Karten die den aktuellenw Wert besitzen
|
* Dann Karten die den aktuellenw Wert besitzen
|
||||||
* Zuletzt Buben um sich eine Farbe zu w<>nschen
|
* Zuletzt Buben um sich eine Farbe zu w<>nschen
|
||||||
* @param Kartensatz aktueller Stand des Kartensatzes
|
* @param boolean ziehen, aussetzen
|
||||||
* @return Kartenindex der Karte die gelegt werden soll
|
* @return Kartenindex der Karte die gelegt werden soll
|
||||||
*/
|
*/
|
||||||
public int cpu_Zug() { //Erzeugt ein Abbild des aktuellen Kartensatzes, mit Stand der Karten
|
public int cpu_Zug(boolean ziehen, boolean aussetzen) { //Erzeugt ein Abbild des aktuellen Kartensatzes, mit Stand der Karten
|
||||||
letztekartewert = kartensatz.getKarte(kartensatz.getletzteKarte()).getWERT(); //Speichert den Wert der Karte, die zuletzt gelegt wurde
|
letztekartewert = kartensatz.getKarte(kartensatz.getletzteKarte()).getWERT(); //Speichert den Wert der Karte, die zuletzt gelegt wurde
|
||||||
letztekartefarbe = kartensatz.getKarte(kartensatz.getletzteKarte()).getFARBE(); //Speichert die Farbe der Karte, die zuletzt gelegt wurde
|
letztekartefarbe = kartensatz.getKarte(kartensatz.getletzteKarte()).getFARBE(); //Speichert die Farbe der Karte, die zuletzt gelegt wurde
|
||||||
hand = kartensatz.getHand(Spieler.COMPUTER); //Speichert die Karten, die der Computer aktuell auf der Hand hat
|
hand = kartensatz.getHand(Spieler.COMPUTER); //Speichert die Karten, die der Computer aktuell auf der Hand hat
|
||||||
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
|
int rueckgabeindex = -1; //Speichert den Kartenindex, der Karte, die gelegt werden soll. Standard -1 f<>r ziehen, falls keine passende Karte auf Hand
|
||||||
aussetzen = spiel.getAussetzen(); //Speichert, ob der Computer aktuell aussetzen m<>sste
|
bubeInHand = false; //SPeichert, ob ein Bube in der Hand vorhanden ist
|
||||||
ziehen = spiel.getZwei_ziehen(); //Speichert, ob der Computer aktuell ziehen m<>sste
|
|
||||||
bubeInHand = 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
|
||||||
@@ -93,18 +90,21 @@ public class Computer_gegner {
|
|||||||
}
|
}
|
||||||
|
|
||||||
//W<>hlt aus, welche Karte gelegt wird
|
//W<>hlt aus, welche Karte gelegt wird
|
||||||
if (aussetzen || ziehen) { //Muss der Computer aussetzen oder ziehen, versucht er eine passende Konterkarte zu legen
|
if ((aussetzen || ziehen) && wertInHand) { //Muss der Computer aussetzen oder ziehen, versucht er eine passende Konterkarte zu legen
|
||||||
rueckgabeindex = wertLegen(letztekartewert);
|
rueckgabeindex = wertLegen(letztekartewert);
|
||||||
}
|
}
|
||||||
else if(farbeInHand) { //Hat der Computer die Farbe auf der Hand, versucht er diese zu legen
|
else if(farbeInHand && !aussetzen && !ziehen) { //Hat der Computer die Farbe auf der Hand, versucht er diese zu legen
|
||||||
rueckgabeindex = farbeLegen(letztekartefarbe);
|
rueckgabeindex = farbeLegen(letztekartefarbe);
|
||||||
}
|
}
|
||||||
else if(wertInHand) { //Hat der Computer nicht die passende Farbe, aber einen passenden Wert, legt er diesen
|
else if(wertInHand && !aussetzen && !ziehen) { //Hat der Computer nicht die passende Farbe, aber einen passenden Wert, legt er diesen
|
||||||
rueckgabeindex = wertLegen(letztekartewert);
|
rueckgabeindex = wertLegen(letztekartewert);
|
||||||
}
|
}
|
||||||
else if(bubeInHand) { //Hat der Computer weder die passende Farbe, noch den passenden Wert auf der Hand, aber einen W<>nscher, legt er diesen
|
else if(bubeInHand && !aussetzen && !ziehen) { //Hat der Computer weder die passende Farbe, noch den passenden Wert auf der Hand, aber einen W<>nscher, legt er diesen
|
||||||
rueckgabeindex = wertLegen(Wert.BUBE);
|
rueckgabeindex = wertLegen(Wert.BUBE);
|
||||||
}
|
}
|
||||||
|
else if(aussetzen && !wertInHand) { //Muss der Computer aussetzen und kann nicht reagieren, gibt er eine -2 zur<75>ck
|
||||||
|
rueckgabeindex = -2;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -152,7 +152,7 @@ public class Computer_gegner {
|
|||||||
* @return Farbe gew<65>hlte Farbe
|
* @return Farbe gew<65>hlte Farbe
|
||||||
*/
|
*/
|
||||||
public Farbe farbeAussuchen() {
|
public Farbe farbeAussuchen() {
|
||||||
Farbe wahl = Farbe.KREUZ; //Erzeugt ein Abbild des aktuellen Kartensatzes, mit Stand der Karten
|
Farbe wahl = Farbe.KREUZ;
|
||||||
hand = kartensatz.getHand(Spieler.COMPUTER); //Speichert die Karten, die der Computer aktuell auf der Hand hat
|
hand = kartensatz.getHand(Spieler.COMPUTER); //Speichert die Karten, die der Computer aktuell auf der Hand hat
|
||||||
|
|
||||||
int hoechsteAnzahl = 0;
|
int hoechsteAnzahl = 0;
|
||||||
@@ -193,5 +193,4 @@ public class Computer_gegner {
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
//Commitkommentar
|
|
||||||
}
|
}
|
||||||
|
@@ -20,33 +20,15 @@ public class Spielzug {
|
|||||||
// Fields
|
// Fields
|
||||||
//
|
//
|
||||||
|
|
||||||
/*
|
private Kartensatz kartensatz;
|
||||||
if(zwei_ziehen && legenWert == Wert.SIEBEN) {
|
|
||||||
kartensatz.ablegen(kartenindex);
|
//
|
||||||
spiel();
|
// Constructors
|
||||||
return;
|
//
|
||||||
}
|
public Spielzug (Kartensatz karten) {
|
||||||
if(aussetzen && legenWert == Wert.ACHT) {
|
kartensatz = karten;
|
||||||
kartensatz.ablegen(kartenindex);
|
};
|
||||||
spiel();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if(!aussetzen && !zwei_ziehen) {
|
|
||||||
if(legenFarbe == gelegteFarbe) {
|
|
||||||
kartensatz.ablegen(kartenindex);
|
|
||||||
spiel();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if(legenWert == gelegterWert) {
|
|
||||||
kartensatz.ablegen(kartenindex);
|
|
||||||
spiel();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if(aussetzen) {
|
|
||||||
spiel();
|
|
||||||
aussetzen = false;
|
|
||||||
}*/
|
|
||||||
/**
|
/**
|
||||||
* Funktion untersucht, ob die Karte die der Spieler zu legen verusucht auch gelegt werden kann
|
* 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
|
* Sollte der Spieler gerade aussetzen m<>ssen, kann nur eine 8 gelegt werden
|
||||||
@@ -55,50 +37,44 @@ public class Spielzug {
|
|||||||
* @param kartenindex Index der Karte die gelegt werden soll
|
* @param kartenindex Index der Karte die gelegt werden soll
|
||||||
* @return boolean
|
* @return boolean
|
||||||
*/
|
*/
|
||||||
public boolean pruefeZug(int kartenindex) {
|
public boolean pruefeZug(int kartenindex, boolean ziehen, boolean aussetzen) {
|
||||||
|
|
||||||
|
|
||||||
// Farbe kartenfarbe = kartensatz.getKarte(kartenindex).getFARBE();
|
Farbe kartenfarbe = kartensatz.getKarte(kartenindex).getFARBE();
|
||||||
// Wert kartenwert = kartensatz.getKarte(kartenindex).getWERT();
|
Wert kartenwert = kartensatz.getKarte(kartenindex).getWERT();
|
||||||
// Wert letztekartewert = kartensatz.getKarte(kartensatz.getletzteKarte()).getWERT();
|
Wert letztekartewert = kartensatz.getKarte(kartensatz.getletzteKarte()).getWERT();
|
||||||
// Farbe letztekartefarbe = kartensatz.getKarte(kartensatz.getletzteKarte()).getFARBE();
|
Farbe letztekartefarbe = kartensatz.getKarte(kartensatz.getletzteKarte()).getFARBE();
|
||||||
// if(Spiel.getAussetzen() && kartenwert == Wert.ACHT) {
|
if(aussetzen && kartenwert == Wert.ACHT) {
|
||||||
// return true;
|
return true;
|
||||||
// }
|
}
|
||||||
// else if (Spiel.getZwei_ziehen() && kartenwert == Wert.SIEBEN) {
|
else if (ziehen && kartenwert == Wert.SIEBEN) {
|
||||||
// return true;
|
return true;
|
||||||
// }
|
}
|
||||||
// else if (!Spiel.getAussetzen() && !Spiel.getZwei_ziehen() && (kartenwert == letztekartewert || kartenfarbe == letztekartefarbe || kartenwert == Wert.BUBE)) {
|
else if (!aussetzen && !ziehen && (kartenwert == letztekartewert || kartenfarbe == letztekartefarbe || kartenwert == Wert.BUBE)) {
|
||||||
// return true;
|
return true;
|
||||||
// }
|
}
|
||||||
// else {
|
else {
|
||||||
return true; // auf true ge<67>ndert f<>r DEBUG!!
|
return false;
|
||||||
// }
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Pr<50>ft, ob der Spieler eine Karte legen kann, indem jede Karte in der Hand des Spielers mit der Funktion pruefeZug gepr<70>ft wird
|
* Pr<50>ft, ob der Spieler eine Karte legen kann, indem jede Karte in der Hand des Spielers mit der Funktion pruefeZug gepr<70>ft wird
|
||||||
* @param spieler Spieler, der am Zug ist und dessen Hand
|
* @param spieler, boolean, boolean
|
||||||
* @return
|
* @return boolean
|
||||||
*/
|
*/
|
||||||
public boolean zugMoeglich(Spieler spieler) {
|
public boolean zugMoeglich(Spieler spieler, boolean ziehen, boolean aussetzen) {
|
||||||
// Kartensatz kartensatz = Spiel.getKartensatz();
|
boolean gefunden = false;
|
||||||
boolean gefunden = true; // auf true ge<67>ndert f<>r DEBUG!!
|
ArrayList<Integer> Hand = kartensatz.getHand(spieler);
|
||||||
// ArrayList<Integer> Hand = kartensatz.getHand(spieler);
|
for (int i = 0; i < Hand.size(); i++) {
|
||||||
// for (int i = 0; i < Hand.size(); i++) {
|
if (pruefeZug(i, ziehen, aussetzen)) {
|
||||||
// if (pruefeZug(i)) {
|
gefunden = true;
|
||||||
// gefunden = true;
|
}
|
||||||
// }
|
}
|
||||||
// }
|
|
||||||
return gefunden;
|
return gefunden;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
|
||||||
// Constructors
|
|
||||||
//
|
|
||||||
public Spielzug (Kartensatz karten) {
|
|
||||||
Kartensatz kartensatz = karten;
|
|
||||||
};
|
|
||||||
|
|
||||||
//
|
//
|
||||||
// Methods
|
// Methods
|
||||||
|
Reference in New Issue
Block a user