BeRo refactoring
This commit is contained in:
@@ -24,6 +24,7 @@ public:
|
|||||||
|
|
||||||
virtual GameState getMyBeRoID() const =0;
|
virtual GameState getMyBeRoID() const =0;
|
||||||
|
|
||||||
|
|
||||||
virtual void setPlayersTurn(int) =0;
|
virtual void setPlayersTurn(int) =0;
|
||||||
virtual int getPlayersTurn() const =0;
|
virtual int getPlayersTurn() const =0;
|
||||||
|
|
||||||
@@ -37,7 +38,6 @@ public:
|
|||||||
|
|
||||||
virtual void nextPlayer() =0;
|
virtual void nextPlayer() =0;
|
||||||
virtual void run() =0;
|
virtual void run() =0;
|
||||||
virtual void postRiverRun() =0;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -27,10 +27,22 @@ public:
|
|||||||
~LocalBeRo();
|
~LocalBeRo();
|
||||||
|
|
||||||
GameState getMyBeRoID() const { return myBeRoID; }
|
GameState getMyBeRoID() const { return myBeRoID; }
|
||||||
|
|
||||||
int getHighestCardsValue() const {return 0;}
|
int getHighestCardsValue() const {return 0; }
|
||||||
void setHighestCardsValue(int theValue) {}
|
void setHighestCardsValue(int theValue) {}
|
||||||
|
|
||||||
|
void resetFirstRun() { firstRun = false; }
|
||||||
|
|
||||||
|
void nextPlayer();
|
||||||
|
void run();
|
||||||
|
|
||||||
|
protected:
|
||||||
|
|
||||||
|
HandInterface* getMyHand() const { return myHand; }
|
||||||
|
|
||||||
|
int getDealerPosition() const {return dealerPosition; }
|
||||||
|
void setDealerPosition(int theValue) { dealerPosition = theValue; }
|
||||||
|
|
||||||
void setPlayersTurn(int theValue) { playersTurn = theValue; }
|
void setPlayersTurn(int theValue) { playersTurn = theValue; }
|
||||||
int getPlayersTurn() const { return playersTurn; }
|
int getPlayersTurn() const { return playersTurn; }
|
||||||
|
|
||||||
@@ -45,14 +57,9 @@ public:
|
|||||||
|
|
||||||
void setSmallBlind(int theValue) { smallBlind = theValue; }
|
void setSmallBlind(int theValue) { smallBlind = theValue; }
|
||||||
int getSmallBlind() const { return smallBlind; }
|
int getSmallBlind() const { return smallBlind; }
|
||||||
|
|
||||||
|
|
||||||
void resetFirstRun() { firstRun = false; }
|
private:
|
||||||
|
|
||||||
void nextPlayer();
|
|
||||||
void run();
|
|
||||||
void postRiverRun() {}
|
|
||||||
|
|
||||||
protected:
|
|
||||||
|
|
||||||
HandInterface* myHand;
|
HandInterface* myHand;
|
||||||
|
|
||||||
|
|||||||
@@ -34,55 +34,43 @@ LocalBeRoPostRiver::~LocalBeRoPostRiver()
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void LocalBeRoPostRiver::postRiverRun() {
|
void LocalBeRoPostRiver::run() {
|
||||||
|
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
// für die Engine die durchschnittlichen Sets von Player 0 setzen --> UNUSED !!!
|
|
||||||
// if(myID < 5) {
|
|
||||||
// myHand->getPlayerArray()[0]->setMyAverageSets(((myHand->getPlayerArray()[0]->getMyAverageSets())*(myID-1))/myID + (myHand->getPlayerArray()[0]->getMyRoundStartCash()-myHand->getPlayerArray()[0]->getMyCash())/myID);
|
|
||||||
// } else {
|
|
||||||
// myHand->getPlayerArray()[0]->setMyAverageSets(((myHand->getPlayerArray()[0]->getMyAverageSets())*4)/5 + (myHand->getPlayerArray()[0]->getMyRoundStartCash()-myHand->getPlayerArray()[0]->getMyCash())/5);
|
|
||||||
// }
|
|
||||||
|
|
||||||
// cout << myHand->getPlayerArray()[0]->getMyAverageSets() << endl;
|
|
||||||
|
|
||||||
//berechnen welcher Spieler gewonnen hat
|
//berechnen welcher Spieler gewonnen hat
|
||||||
for(i=0; i<MAX_NUMBER_OF_PLAYERS; i++) {
|
for(i=0; i<MAX_NUMBER_OF_PLAYERS; i++) {
|
||||||
|
|
||||||
// cout << "Spieler: " << i << " hat: " << myHand->getPlayerArray()[i]->getMyCardsValueInt() << endl;
|
if(getMyHand()->getPlayerArray()[i]->getMyActiveStatus() && getMyHand()->getPlayerArray()[i]->getMyAction() != PLAYER_ACTION_FOLD && getMyHand()->getPlayerArray()[i]->getMyCardsValueInt() > highestCardsValue ) {
|
||||||
|
highestCardsValue = getMyHand()->getPlayerArray()[i]->getMyCardsValueInt();
|
||||||
if(myHand->getPlayerArray()[i]->getMyActiveStatus() && myHand->getPlayerArray()[i]->getMyAction() != 1 && myHand->getPlayerArray()[i]->getMyCardsValueInt() > highestCardsValue ) {
|
|
||||||
highestCardsValue = myHand->getPlayerArray()[i]->getMyCardsValueInt();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Durchschnittsets des human player ermitteln
|
// Durchschnittsets des human player ermitteln
|
||||||
myHand->getPlayerArray()[0]->setMyAverageSets(((myHand->getPlayerArray()[0]->getMyRoundStartCash())-(myHand->getPlayerArray()[0]->getMyCash()))/(myHand->getBettingRoundsPlayed()+1));
|
getMyHand()->getPlayerArray()[0]->setMyAverageSets(((getMyHand()->getPlayerArray()[0]->getMyRoundStartCash())-(getMyHand()->getPlayerArray()[0]->getMyCash()))/(getMyHand()->getBettingRoundsPlayed()+1));
|
||||||
// cout << myHand->getPlayerArray()[0]->getMyAverageSets() << endl;
|
|
||||||
|
|
||||||
// Aggressivität des human player ermitteln
|
// Aggressivität des human player ermitteln
|
||||||
// anzahl der player die möglichkeit haben am pot teilzuhaben
|
// anzahl der player die möglichkeit haben am pot teilzuhaben
|
||||||
int potPlayers = 0;
|
int potPlayers = 0;
|
||||||
for(i=0; i<MAX_NUMBER_OF_PLAYERS; i++) {
|
for(i=0; i<MAX_NUMBER_OF_PLAYERS; i++) {
|
||||||
if(myHand->getPlayerArray()[i]->getMyActiveStatus() && myHand->getPlayerArray()[i]->getMyAction() != 1) {
|
if(getMyHand()->getPlayerArray()[i]->getMyActiveStatus() && getMyHand()->getPlayerArray()[i]->getMyAction() != PLAYER_ACTION_FOLD) {
|
||||||
potPlayers++;
|
potPlayers++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// prüfen ob nur noch der human player an der verteilung teilnimmt und myAggressive für human player setzen
|
// prüfen ob nur noch der human player an der verteilung teilnimmt und myAggressive für human player setzen
|
||||||
myHand->getPlayerArray()[0]->setMyAggressive(potPlayers == 1 && myHand->getPlayerArray()[0]->getMyActiveStatus() && myHand->getPlayerArray()[0]->getMyAction() != 1);
|
getMyHand()->getPlayerArray()[0]->setMyAggressive(potPlayers == 1 && getMyHand()->getPlayerArray()[0]->getMyActiveStatus() && getMyHand()->getPlayerArray()[0]->getMyAction() != PLAYER_ACTION_FOLD);
|
||||||
|
|
||||||
// cout << "myAggressive: " << myHand->getPlayerArray()[0]->getMyAggressive() << endl;
|
// cout << "myAggressive: " << getMyHand()->getPlayerArray()[0]->getMyAggressive() << endl;
|
||||||
|
|
||||||
// Pot-Verteilung
|
// Pot-Verteilung
|
||||||
distributePot();
|
distributePot();
|
||||||
|
|
||||||
//Pot auf 0 setzen
|
//Pot auf 0 setzen
|
||||||
myHand->getBoard()->setPot(0);
|
getMyHand()->getBoard()->setPot(0);
|
||||||
|
|
||||||
//starte die Animaionsreihe
|
//starte die Animaionsreihe
|
||||||
myHand->getGuiInterface()->postRiverRunAnimation1();
|
getMyHand()->getGuiInterface()->postRiverRunAnimation1();
|
||||||
}
|
}
|
||||||
|
|
||||||
void LocalBeRoPostRiver::distributePot() {
|
void LocalBeRoPostRiver::distributePot() {
|
||||||
@@ -117,8 +105,8 @@ void LocalBeRoPostRiver::distributePot() {
|
|||||||
// Standardwert fr nicht mehr aktive
|
// Standardwert fr nicht mehr aktive
|
||||||
roundSetArray[i] = 0;
|
roundSetArray[i] = 0;
|
||||||
// nur fr die Spieler ermitteln, die noch aktiv sind (inkl. der gefoldeten)
|
// nur fr die Spieler ermitteln, die noch aktiv sind (inkl. der gefoldeten)
|
||||||
if(myHand->getPlayerArray()[i]->getMyActiveStatus()) {
|
if(getMyHand()->getPlayerArray()[i]->getMyActiveStatus()) {
|
||||||
roundSetArray[i] = myHand->getPlayerArray()[i]->getMyRoundStartCash()-myHand->getPlayerArray()[i]->getMyCash();
|
roundSetArray[i] = getMyHand()->getPlayerArray()[i]->getMyRoundStartCash()-getMyHand()->getPlayerArray()[i]->getMyCash();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -129,9 +117,9 @@ void LocalBeRoPostRiver::distributePot() {
|
|||||||
for(i=0; i<MAX_NUMBER_OF_PLAYERS; i++) {
|
for(i=0; i<MAX_NUMBER_OF_PLAYERS; i++) {
|
||||||
// Standardwert
|
// Standardwert
|
||||||
cardsValueArray[i] = 0;
|
cardsValueArray[i] = 0;
|
||||||
if(myHand->getPlayerArray()[i]->getMyActiveStatus() && myHand->getPlayerArray()[i]->getMyAction() != 1) {
|
if(getMyHand()->getPlayerArray()[i]->getMyActiveStatus() && getMyHand()->getPlayerArray()[i]->getMyAction() != 1) {
|
||||||
// nur bei den Spielen den Kartenwert eintragen, die an der Potverteilung teilnehmen
|
// nur bei den Spielen den Kartenwert eintragen, die an der Potverteilung teilnehmen
|
||||||
cardsValueArray[i] = myHand->getPlayerArray()[i]->getMyCardsValueInt();
|
cardsValueArray[i] = getMyHand()->getPlayerArray()[i]->getMyCardsValueInt();
|
||||||
playerWantsPotCounter++;
|
playerWantsPotCounter++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -161,7 +149,7 @@ void LocalBeRoPostRiver::distributePot() {
|
|||||||
// aktuellen highestCardsValueTemp berechnen, von denen die noch an der Potverteilung teilnehmen
|
// aktuellen highestCardsValueTemp berechnen, von denen die noch an der Potverteilung teilnehmen
|
||||||
for(i=0; i<MAX_NUMBER_OF_PLAYERS; i++) {
|
for(i=0; i<MAX_NUMBER_OF_PLAYERS; i++) {
|
||||||
if(cardsValueArray[i] > highestCardsValueTemp ) {
|
if(cardsValueArray[i] > highestCardsValueTemp ) {
|
||||||
highestCardsValueTemp = myHand->getPlayerArray()[i]->getMyCardsValueInt();
|
highestCardsValueTemp = getMyHand()->getPlayerArray()[i]->getMyCardsValueInt();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -184,10 +172,10 @@ void LocalBeRoPostRiver::distributePot() {
|
|||||||
winner = winnersArray[0];
|
winner = winnersArray[0];
|
||||||
|
|
||||||
// Winner ist nicht All In gegangen -> bekommt den gesamten Pot
|
// Winner ist nicht All In gegangen -> bekommt den gesamten Pot
|
||||||
// if(myHand->getPlayerArray()[winner]->getMyAction() != 6) {
|
// if(getMyHand()->getPlayerArray()[winner]->getMyAction() != 6) {
|
||||||
//
|
//
|
||||||
// myHand->getPlayerArray()[winner]->setMyCash(myHand->getPlayerArray()[winner]->getMyCash()+myHand->getBoard()->getPot());
|
// getMyHand()->getPlayerArray()[winner]->setMyCash(getMyHand()->getPlayerArray()[winner]->getMyCash()+getMyHand()->getBoard()->getPot());
|
||||||
// myHand->getBoard()->setPot(0);
|
// getMyHand()->getBoard()->setPot(0);
|
||||||
// playerWantsPotCounter = 1;
|
// playerWantsPotCounter = 1;
|
||||||
//
|
//
|
||||||
// }
|
// }
|
||||||
@@ -198,12 +186,12 @@ void LocalBeRoPostRiver::distributePot() {
|
|||||||
for(i=0; i<MAX_NUMBER_OF_PLAYERS; i++) {
|
for(i=0; i<MAX_NUMBER_OF_PLAYERS; i++) {
|
||||||
|
|
||||||
// zuerst prfen ob ein gefoldeter Spieler was gesetzt hatte
|
// zuerst prfen ob ein gefoldeter Spieler was gesetzt hatte
|
||||||
if(i != winner && myHand->getPlayerArray()[i]->getMyAction() == 1) {
|
if(i != winner && getMyHand()->getPlayerArray()[i]->getMyAction() == 1) {
|
||||||
|
|
||||||
// diesen Teil aus dem Pot holen
|
// diesen Teil aus dem Pot holen
|
||||||
myHand->getPlayerArray()[winner]->setMyCash(myHand->getPlayerArray()[winner]->getMyCash()+roundSetArray[i]);
|
getMyHand()->getPlayerArray()[winner]->setMyCash(getMyHand()->getPlayerArray()[winner]->getMyCash()+roundSetArray[i]);
|
||||||
// Pot dementsprechend verkleinern
|
// Pot dementsprechend verkleinern
|
||||||
myHand->getBoard()->setPot(myHand->getBoard()->getPot() - roundSetArray[i]);
|
getMyHand()->getBoard()->setPot(getMyHand()->getBoard()->getPot() - roundSetArray[i]);
|
||||||
// deren Sets auf Null seztzen -> in den nᅵhsten Potverteilungsrunden nimmt der Winner dann von diesen Spielern 0 Dollar aus dem Pot
|
// deren Sets auf Null seztzen -> in den nᅵhsten Potverteilungsrunden nimmt der Winner dann von diesen Spielern 0 Dollar aus dem Pot
|
||||||
roundSetArray[i] = 0;
|
roundSetArray[i] = 0;
|
||||||
|
|
||||||
@@ -216,9 +204,9 @@ void LocalBeRoPostRiver::distributePot() {
|
|||||||
if(roundSetArray[winner] >= roundSetArray[i]) {
|
if(roundSetArray[winner] >= roundSetArray[i]) {
|
||||||
|
|
||||||
// von denen alles holen
|
// von denen alles holen
|
||||||
myHand->getPlayerArray()[winner]->setMyCash(myHand->getPlayerArray()[winner]->getMyCash()+roundSetArray[i]);
|
getMyHand()->getPlayerArray()[winner]->setMyCash(getMyHand()->getPlayerArray()[winner]->getMyCash()+roundSetArray[i]);
|
||||||
// Pot dementsprechend verkleinern
|
// Pot dementsprechend verkleinern
|
||||||
myHand->getBoard()->setPot(myHand->getBoard()->getPot() - roundSetArray[i]);
|
getMyHand()->getBoard()->setPot(getMyHand()->getBoard()->getPot() - roundSetArray[i]);
|
||||||
// diese Spieler dann von der weiteren Potverteilung ausschlieᅵn
|
// diese Spieler dann von der weiteren Potverteilung ausschlieᅵn
|
||||||
cardsValueArray[i] = 0;
|
cardsValueArray[i] = 0;
|
||||||
playerWantsPotCounter--;
|
playerWantsPotCounter--;
|
||||||
@@ -230,8 +218,8 @@ void LocalBeRoPostRiver::distributePot() {
|
|||||||
else {
|
else {
|
||||||
|
|
||||||
// den eigenen Setanteil aus dem Pot holen
|
// den eigenen Setanteil aus dem Pot holen
|
||||||
myHand->getPlayerArray()[winner]->setMyCash(myHand->getPlayerArray()[winner]->getMyCash()+roundSetArray[winner]);
|
getMyHand()->getPlayerArray()[winner]->setMyCash(getMyHand()->getPlayerArray()[winner]->getMyCash()+roundSetArray[winner]);
|
||||||
myHand->getBoard()->setPot(myHand->getBoard()->getPot() - roundSetArray[winner]);
|
getMyHand()->getBoard()->setPot(getMyHand()->getBoard()->getPot() - roundSetArray[winner]);
|
||||||
// den Set des Gegners um den bereits abgenommenen Setanteil verkleinern
|
// den Set des Gegners um den bereits abgenommenen Setanteil verkleinern
|
||||||
roundSetArray[i] = roundSetArray[i] - roundSetArray[winner];
|
roundSetArray[i] = roundSetArray[i] - roundSetArray[winner];
|
||||||
// diese Spieler nehmen an der weiteren Potverteilung teil
|
// diese Spieler nehmen an der weiteren Potverteilung teil
|
||||||
@@ -242,8 +230,8 @@ void LocalBeRoPostRiver::distributePot() {
|
|||||||
// // }
|
// // }
|
||||||
|
|
||||||
// zum Scluss noch eingenen Set wieder holen
|
// zum Scluss noch eingenen Set wieder holen
|
||||||
myHand->getPlayerArray()[winner]->setMyCash(myHand->getPlayerArray()[winner]->getMyCash()+roundSetArray[winner]);
|
getMyHand()->getPlayerArray()[winner]->setMyCash(getMyHand()->getPlayerArray()[winner]->getMyCash()+roundSetArray[winner]);
|
||||||
myHand->getBoard()->setPot(myHand->getBoard()->getPot() - roundSetArray[winner]);
|
getMyHand()->getBoard()->setPot(getMyHand()->getBoard()->getPot() - roundSetArray[winner]);
|
||||||
// nicht mehr an der weiteren Potverteilung teilnehmen, da man sich alles geholt hat was einem zusteht
|
// nicht mehr an der weiteren Potverteilung teilnehmen, da man sich alles geholt hat was einem zusteht
|
||||||
cardsValueArray[winner] = 0;
|
cardsValueArray[winner] = 0;
|
||||||
playerWantsPotCounter--;
|
playerWantsPotCounter--;
|
||||||
@@ -284,12 +272,12 @@ void LocalBeRoPostRiver::distributePot() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// zuerst prfen ob ein gefoldeter Spieler was gesetzt hatte
|
// zuerst prfen ob ein gefoldeter Spieler was gesetzt hatte
|
||||||
if(!playerIsWinner && myHand->getPlayerArray()[i]->getMyAction() == 1) {
|
if(!playerIsWinner && getMyHand()->getPlayerArray()[i]->getMyAction() == 1) {
|
||||||
|
|
||||||
// diesen Teil aus dem Pot holen und dem winnersPot geben
|
// diesen Teil aus dem Pot holen und dem winnersPot geben
|
||||||
winnersPot += roundSetArray[i];
|
winnersPot += roundSetArray[i];
|
||||||
// Pot dementsprechend verkleinern
|
// Pot dementsprechend verkleinern
|
||||||
myHand->getBoard()->setPot(myHand->getBoard()->getPot() - roundSetArray[i]);
|
getMyHand()->getBoard()->setPot(getMyHand()->getBoard()->getPot() - roundSetArray[i]);
|
||||||
// deren Sets auf Null seztzen -> in den nᅵhsten Potverteilungsrunden nehmen die Winner dann von diesen Spielern 0 Dollar aus dem Pot
|
// deren Sets auf Null seztzen -> in den nᅵhsten Potverteilungsrunden nehmen die Winner dann von diesen Spielern 0 Dollar aus dem Pot
|
||||||
roundSetArray[i] = 0;
|
roundSetArray[i] = 0;
|
||||||
|
|
||||||
@@ -304,7 +292,7 @@ void LocalBeRoPostRiver::distributePot() {
|
|||||||
// von denen alles holen
|
// von denen alles holen
|
||||||
winnersPot += roundSetArray[i];
|
winnersPot += roundSetArray[i];
|
||||||
// Pot dementsprechend verkleinern
|
// Pot dementsprechend verkleinern
|
||||||
myHand->getBoard()->setPot(myHand->getBoard()->getPot() - roundSetArray[i]);
|
getMyHand()->getBoard()->setPot(getMyHand()->getBoard()->getPot() - roundSetArray[i]);
|
||||||
// diese Spieler dann von der weiteren Potverteilung ausschlieᅵn
|
// diese Spieler dann von der weiteren Potverteilung ausschlieᅵn
|
||||||
cardsValueArray[i] = 0;
|
cardsValueArray[i] = 0;
|
||||||
playerWantsPotCounter--;
|
playerWantsPotCounter--;
|
||||||
@@ -317,7 +305,7 @@ void LocalBeRoPostRiver::distributePot() {
|
|||||||
|
|
||||||
// den eigenen Setanteil aus dem Pot holen
|
// den eigenen Setanteil aus dem Pot holen
|
||||||
winnersPot += winnersMaxSet;
|
winnersPot += winnersMaxSet;
|
||||||
myHand->getBoard()->setPot(myHand->getBoard()->getPot() - winnersMaxSet);
|
getMyHand()->getBoard()->setPot(getMyHand()->getBoard()->getPot() - winnersMaxSet);
|
||||||
// den Set des Gegners um den bereits abgenommenen Setanteil verkleinern
|
// den Set des Gegners um den bereits abgenommenen Setanteil verkleinern
|
||||||
roundSetArray[i] = roundSetArray[i] - winnersMaxSet;
|
roundSetArray[i] = roundSetArray[i] - winnersMaxSet;
|
||||||
// diese Spieler nehmen an der weiteren Potverteilung teil
|
// diese Spieler nehmen an der weiteren Potverteilung teil
|
||||||
@@ -328,11 +316,11 @@ void LocalBeRoPostRiver::distributePot() {
|
|||||||
|
|
||||||
// zum Schluss noch die eingenen Set aus dem Pot holen
|
// zum Schluss noch die eingenen Set aus dem Pot holen
|
||||||
winnersPot += winnersSets;
|
winnersPot += winnersSets;
|
||||||
myHand->getBoard()->setPot(myHand->getBoard()->getPot() - winnersSets);
|
getMyHand()->getBoard()->setPot(getMyHand()->getBoard()->getPot() - winnersSets);
|
||||||
|
|
||||||
// winnersPot verteilen (anteilmᅵig)
|
// winnersPot verteilen (anteilmᅵig)
|
||||||
for(i=0; i<winnersCounter; i++) {
|
for(i=0; i<winnersCounter; i++) {
|
||||||
myHand->getPlayerArray()[winnersArray[i]]->setMyCash(myHand->getPlayerArray()[winnersArray[i]]->getMyCash()+((roundSetArray[winnersArray[i]]*winnersPot)/winnersSets));
|
getMyHand()->getPlayerArray()[winnersArray[i]]->setMyCash(getMyHand()->getPlayerArray()[winnersArray[i]]->getMyCash()+((roundSetArray[winnersArray[i]]*winnersPot)/winnersSets));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -348,7 +336,7 @@ void LocalBeRoPostRiver::distributePot() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if(myHand->getBoard()->getPot() != 0) cout << "!!! Pot: " << myHand->getBoard()->getPot() << endl;
|
if(getMyHand()->getBoard()->getPot() != 0) cout << "!!! Pot: " << getMyHand()->getBoard()->getPot() << endl;
|
||||||
|
|
||||||
delete[] winnersArray;
|
delete[] winnersArray;
|
||||||
delete[] roundSetArray;
|
delete[] roundSetArray;
|
||||||
|
|||||||
@@ -34,7 +34,7 @@ public:
|
|||||||
void setHighestCardsValue(int theValue) { highestCardsValue = theValue;}
|
void setHighestCardsValue(int theValue) { highestCardsValue = theValue;}
|
||||||
int getHighestCardsValue() const { return highestCardsValue;}
|
int getHighestCardsValue() const { return highestCardsValue;}
|
||||||
|
|
||||||
void postRiverRun();
|
void run();
|
||||||
void distributePot();
|
void distributePot();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|||||||
@@ -27,18 +27,18 @@ using namespace std;
|
|||||||
LocalBeRoPreflop::LocalBeRoPreflop(HandInterface* hi, int id, int qP, int dP, int sB) : LocalBeRo(hi, id, qP, dP, sB, GAME_STATE_PREFLOP), bigBlindPosition(0)
|
LocalBeRoPreflop::LocalBeRoPreflop(HandInterface* hi, int id, int qP, int dP, int sB) : LocalBeRo(hi, id, qP, dP, sB, GAME_STATE_PREFLOP), bigBlindPosition(0)
|
||||||
|
|
||||||
{
|
{
|
||||||
highestSet = 2*smallBlind;
|
setHighestSet(2*getSmallBlind());
|
||||||
|
|
||||||
// // BigBlind ermitteln
|
// // BigBlind ermitteln
|
||||||
bigBlindPosition = dealerPosition;
|
bigBlindPosition = getDealerPosition();
|
||||||
while (myHand->getPlayerArray()[bigBlindPosition]->getMyButton() != 3) {
|
while (getMyHand()->getPlayerArray()[bigBlindPosition]->getMyButton() != BUTTON_BIG_BLIND) {
|
||||||
bigBlindPosition = (bigBlindPosition+1)%(MAX_NUMBER_OF_PLAYERS);
|
bigBlindPosition = (bigBlindPosition+1)%(MAX_NUMBER_OF_PLAYERS);
|
||||||
}
|
}
|
||||||
|
|
||||||
// // erste Spielernummer fr preflopRun() setzen
|
// // erste Spielernummer fr preflopRun() setzen
|
||||||
playersTurn = bigBlindPosition;
|
setPlayersTurn(bigBlindPosition);
|
||||||
|
|
||||||
cout << "LocalBeroPreflop erstellt - " << myBeRoID << endl;
|
cout << "LocalBeroPreflop erstellt - " << getMyBeRoID() << endl;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -60,38 +60,38 @@ void LocalBeRoPreflop::run() {
|
|||||||
|
|
||||||
// prfe, ob alle Sets gleich sind ( falls nicht, dann allHighestSet = 0 )
|
// prfe, ob alle Sets gleich sind ( falls nicht, dann allHighestSet = 0 )
|
||||||
for(i=0; i<MAX_NUMBER_OF_PLAYERS; i++) {
|
for(i=0; i<MAX_NUMBER_OF_PLAYERS; i++) {
|
||||||
if(myHand->getPlayerArray()[i]->getMyActiveStatus() && myHand->getPlayerArray()[i]->getMyAction() != 1 && myHand->getPlayerArray()[i]->getMyAction() != 6) {
|
if(getMyHand()->getPlayerArray()[i]->getMyActiveStatus() && getMyHand()->getPlayerArray()[i]->getMyAction() != PLAYER_ACTION_FOLD && getMyHand()->getPlayerArray()[i]->getMyAction() != PLAYER_ACTION_ALLIN) {
|
||||||
if(highestSet != myHand->getPlayerArray()[i]->getMySet()) { allHighestSet=0; }
|
if(getHighestSet() != getMyHand()->getPlayerArray()[i]->getMySet()) { allHighestSet=0; }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// BigBlind ermitteln
|
// BigBlind ermitteln
|
||||||
bigBlindPosition = dealerPosition;
|
bigBlindPosition = getDealerPosition();
|
||||||
while (myHand->getPlayerArray()[bigBlindPosition]->getMyButton() != 3) {
|
while (getMyHand()->getPlayerArray()[bigBlindPosition]->getMyButton() != BUTTON_BIG_BLIND) {
|
||||||
bigBlindPosition = (bigBlindPosition+1)%(MAX_NUMBER_OF_PLAYERS);
|
bigBlindPosition = (bigBlindPosition+1)%(MAX_NUMBER_OF_PLAYERS);
|
||||||
}
|
}
|
||||||
|
|
||||||
// prfen, ob Preflop wirklich dran ist
|
// prfen, ob Preflop wirklich dran ist
|
||||||
if(!firstRound && allHighestSet) {
|
if(!getFirstRound() && allHighestSet) {
|
||||||
|
|
||||||
// Preflop nicht dran, weil wir nicht mehr in erster PreflopRunde und alle Sets gleich sind
|
// Preflop nicht dran, weil wir nicht mehr in erster PreflopRunde und alle Sets gleich sind
|
||||||
//also gehe in Flop
|
//also gehe in Flop
|
||||||
myHand->setActualRound(GAME_STATE_FLOP);
|
getMyHand()->setActualRound(GAME_STATE_FLOP);
|
||||||
|
|
||||||
//Action loeschen und ActionButtons refresh
|
//Action loeschen und ActionButtons refresh
|
||||||
for(i=0; i<MAX_NUMBER_OF_PLAYERS; i++) {
|
for(i=0; i<MAX_NUMBER_OF_PLAYERS; i++) {
|
||||||
if(myHand->getPlayerArray()[i]->getMyAction() != 1 && myHand->getPlayerArray()[i]->getMyAction() != 6) myHand->getPlayerArray()[i]->setMyAction(0);
|
if(getMyHand()->getPlayerArray()[i]->getMyAction() != PLAYER_ACTION_FOLD && getMyHand()->getPlayerArray()[i]->getMyAction() != PLAYER_ACTION_ALLIN) getMyHand()->getPlayerArray()[i]->setMyAction(PLAYER_ACTION_NONE);
|
||||||
}
|
}
|
||||||
//Sets in den Pot verschieben und Sets = 0 und Pot-refresh
|
//Sets in den Pot verschieben und Sets = 0 und Pot-refresh
|
||||||
myHand->getBoard()->collectSets();
|
getMyHand()->getBoard()->collectSets();
|
||||||
myHand->getBoard()->collectPot();
|
getMyHand()->getBoard()->collectPot();
|
||||||
myHand->getGuiInterface()->refreshPot();
|
getMyHand()->getGuiInterface()->refreshPot();
|
||||||
|
|
||||||
myHand->getGuiInterface()->refreshSet();
|
getMyHand()->getGuiInterface()->refreshSet();
|
||||||
myHand->getGuiInterface()->refreshCash();
|
getMyHand()->getGuiInterface()->refreshCash();
|
||||||
for(i=0; i<MAX_NUMBER_OF_PLAYERS; i++) { myHand->getGuiInterface()->refreshAction(i,0); }
|
for(i=0; i<MAX_NUMBER_OF_PLAYERS; i++) { getMyHand()->getGuiInterface()->refreshAction(i,PLAYER_ACTION_NONE); }
|
||||||
|
|
||||||
myHand->switchRounds();
|
getMyHand()->switchRounds();
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
// Preflop ist wirklich dran
|
// Preflop ist wirklich dran
|
||||||
@@ -99,25 +99,25 @@ void LocalBeRoPreflop::run() {
|
|||||||
// naechsten Spieler ermitteln
|
// naechsten Spieler ermitteln
|
||||||
do {
|
do {
|
||||||
|
|
||||||
playersTurn = (playersTurn+1)%(MAX_NUMBER_OF_PLAYERS);
|
setPlayersTurn((getPlayersTurn()+1)%(MAX_NUMBER_OF_PLAYERS));
|
||||||
// falls BigBlind, dann PreflopFirstRound zuende
|
// falls BigBlind, dann PreflopFirstRound zuende
|
||||||
if(myHand->getPlayerArray()[playersTurn]->getMyButton() == 3) firstRound = 0;
|
if(getMyHand()->getPlayerArray()[getPlayersTurn()]->getMyButton() == BUTTON_BIG_BLIND) setFirstRound(0);
|
||||||
|
|
||||||
} while(!(myHand->getPlayerArray()[playersTurn]->getMyActiveStatus()) || myHand->getPlayerArray()[playersTurn]->getMyAction() == 1 || myHand->getPlayerArray()[playersTurn]->getMyAction() == 6);
|
} while(!(getMyHand()->getPlayerArray()[getPlayersTurn()]->getMyActiveStatus()) || getMyHand()->getPlayerArray()[getPlayersTurn()]->getMyAction() == PLAYER_ACTION_FOLD || getMyHand()->getPlayerArray()[getPlayersTurn()]->getMyAction() == PLAYER_ACTION_ALLIN);
|
||||||
|
|
||||||
myHand->getPlayerArray()[playersTurn]->setMyTurn(1);
|
getMyHand()->getPlayerArray()[getPlayersTurn()]->setMyTurn(1);
|
||||||
//highlight active players groupbox and clear action
|
//highlight active players groupbox and clear action
|
||||||
myHand->getGuiInterface()->refreshGroupbox(playersTurn,2);
|
getMyHand()->getGuiInterface()->refreshGroupbox(getPlayersTurn(),2);
|
||||||
myHand->getGuiInterface()->refreshAction(playersTurn,0);
|
getMyHand()->getGuiInterface()->refreshAction(getPlayersTurn(),PLAYER_ACTION_NONE);
|
||||||
|
|
||||||
if(playersTurn == 0) {
|
if(getPlayersTurn() == 0) {
|
||||||
// Wir sind dran
|
// Wir sind dran
|
||||||
myHand->getGuiInterface()->meInAction();
|
getMyHand()->getGuiInterface()->meInAction();
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
//Gegner sind dran
|
//Gegner sind dran
|
||||||
// cout << "NextPlayerSpeed3 start" << endl;
|
// cout << "NextPlayerSpeed3 start" << endl;
|
||||||
myHand->getGuiInterface()->beRoAnimation2(myBeRoID);
|
getMyHand()->getGuiInterface()->beRoAnimation2(getMyBeRoID());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -30,84 +30,84 @@ ClientBeRo::getMyBeRoID() const
|
|||||||
int
|
int
|
||||||
ClientBeRo::getHighestCardsValue() const
|
ClientBeRo::getHighestCardsValue() const
|
||||||
{
|
{
|
||||||
boost::recursive_mutex::scoped_lock lock(m_syncMutex);
|
boost::recursive_mutex::scoped_lock lock(m_syncMutex);
|
||||||
return highestCardsValue;
|
return highestCardsValue;
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
ClientBeRo::setHighestCardsValue(int theValue)
|
ClientBeRo::setHighestCardsValue(int theValue)
|
||||||
{
|
{
|
||||||
boost::recursive_mutex::scoped_lock lock(m_syncMutex);
|
boost::recursive_mutex::scoped_lock lock(m_syncMutex);
|
||||||
highestCardsValue = theValue;
|
highestCardsValue = theValue;
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
ClientBeRo::setPlayersTurn(int theValue)
|
ClientBeRo::setPlayersTurn(int theValue)
|
||||||
{
|
{
|
||||||
boost::recursive_mutex::scoped_lock lock(m_syncMutex);
|
boost::recursive_mutex::scoped_lock lock(m_syncMutex);
|
||||||
playersTurn = theValue;
|
playersTurn = theValue;
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
ClientBeRo::getPlayersTurn() const
|
ClientBeRo::getPlayersTurn() const
|
||||||
{
|
{
|
||||||
boost::recursive_mutex::scoped_lock lock(m_syncMutex);
|
boost::recursive_mutex::scoped_lock lock(m_syncMutex);
|
||||||
return playersTurn;
|
return playersTurn;
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
ClientBeRo::setHighestSet(int theValue)
|
ClientBeRo::setHighestSet(int theValue)
|
||||||
{
|
{
|
||||||
boost::recursive_mutex::scoped_lock lock(m_syncMutex);
|
boost::recursive_mutex::scoped_lock lock(m_syncMutex);
|
||||||
highestSet = theValue;
|
highestSet = theValue;
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
ClientBeRo::getHighestSet() const
|
ClientBeRo::getHighestSet() const
|
||||||
{
|
{
|
||||||
boost::recursive_mutex::scoped_lock lock(m_syncMutex);
|
boost::recursive_mutex::scoped_lock lock(m_syncMutex);
|
||||||
return highestSet;
|
return highestSet;
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
ClientBeRo::setFirstRound(bool theValue)
|
ClientBeRo::setFirstRound(bool theValue)
|
||||||
{
|
{
|
||||||
boost::recursive_mutex::scoped_lock lock(m_syncMutex);
|
boost::recursive_mutex::scoped_lock lock(m_syncMutex);
|
||||||
firstRound = theValue;
|
firstRound = theValue;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool
|
bool
|
||||||
ClientBeRo::getFirstRound() const
|
ClientBeRo::getFirstRound() const
|
||||||
{
|
{
|
||||||
boost::recursive_mutex::scoped_lock lock(m_syncMutex);
|
boost::recursive_mutex::scoped_lock lock(m_syncMutex);
|
||||||
return firstRound;
|
return firstRound;
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
ClientBeRo::setSmallBlindPosition(int theValue)
|
ClientBeRo::setSmallBlindPosition(int theValue)
|
||||||
{
|
{
|
||||||
boost::recursive_mutex::scoped_lock lock(m_syncMutex);
|
boost::recursive_mutex::scoped_lock lock(m_syncMutex);
|
||||||
smallBlindPosition = theValue;
|
smallBlindPosition = theValue;
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
ClientBeRo::getSmallBlindPosition() const
|
ClientBeRo::getSmallBlindPosition() const
|
||||||
{
|
{
|
||||||
boost::recursive_mutex::scoped_lock lock(m_syncMutex);
|
boost::recursive_mutex::scoped_lock lock(m_syncMutex);
|
||||||
return smallBlindPosition;
|
return smallBlindPosition;
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
ClientBeRo::setSmallBlind(int theValue)
|
ClientBeRo::setSmallBlind(int theValue)
|
||||||
{
|
{
|
||||||
boost::recursive_mutex::scoped_lock lock(m_syncMutex);
|
boost::recursive_mutex::scoped_lock lock(m_syncMutex);
|
||||||
smallBlind = theValue;
|
smallBlind = theValue;
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
ClientBeRo::getSmallBlind() const
|
ClientBeRo::getSmallBlind() const
|
||||||
{
|
{
|
||||||
boost::recursive_mutex::scoped_lock lock(m_syncMutex);
|
boost::recursive_mutex::scoped_lock lock(m_syncMutex);
|
||||||
return smallBlind;
|
return smallBlind;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -126,8 +126,3 @@ ClientBeRo::run()
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
|
||||||
ClientBeRo::postRiverRun()
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|||||||
@@ -49,7 +49,6 @@ public:
|
|||||||
|
|
||||||
void nextPlayer();
|
void nextPlayer();
|
||||||
void run();
|
void run();
|
||||||
void postRiverRun();
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
||||||
|
|||||||
+4
-2
@@ -45,7 +45,9 @@ enum PlayerAction {
|
|||||||
PLAYER_ACTION_ALLIN };
|
PLAYER_ACTION_ALLIN };
|
||||||
|
|
||||||
enum Button {
|
enum Button {
|
||||||
BUTTON_SMALL_BLIND = 2,
|
BUTTON_NONE = 0,
|
||||||
BUTTON_BIG_BLIND = 3 };
|
BUTTON_DEALER,
|
||||||
|
BUTTON_SMALL_BLIND,
|
||||||
|
BUTTON_BIG_BLIND };
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -1875,7 +1875,7 @@ void mainWindowImpl::riverAnimation2() { riverAnimation2Timer->start(nextPlayerS
|
|||||||
void mainWindowImpl::riverAnimation2Action() { mySession->getCurrentGame()->getCurrentHand()->getRiver()->nextPlayer(); }
|
void mainWindowImpl::riverAnimation2Action() { mySession->getCurrentGame()->getCurrentHand()->getRiver()->nextPlayer(); }
|
||||||
|
|
||||||
void mainWindowImpl::postRiverAnimation1() { postRiverAnimation1Timer->start(nextPlayerSpeed2); }
|
void mainWindowImpl::postRiverAnimation1() { postRiverAnimation1Timer->start(nextPlayerSpeed2); }
|
||||||
void mainWindowImpl::postRiverAnimation1Action() { mySession->getCurrentGame()->getCurrentHand()->getRiver()->postRiverRun(); }
|
void mainWindowImpl::postRiverAnimation1Action() { mySession->getCurrentGame()->getCurrentHand()->getCurrentBeRo()->run(); }
|
||||||
|
|
||||||
void mainWindowImpl::postRiverRunAnimation1() {
|
void mainWindowImpl::postRiverRunAnimation1() {
|
||||||
|
|
||||||
@@ -1982,7 +1982,7 @@ void mainWindowImpl::postRiverRunAnimation3() {
|
|||||||
HandInterface *currentHand = mySession->getCurrentGame()->getCurrentHand();
|
HandInterface *currentHand = mySession->getCurrentGame()->getCurrentHand();
|
||||||
//Alle Winner erhellen und "Winner" schreiben
|
//Alle Winner erhellen und "Winner" schreiben
|
||||||
for(i=0; i<MAX_NUMBER_OF_PLAYERS; i++) {
|
for(i=0; i<MAX_NUMBER_OF_PLAYERS; i++) {
|
||||||
if(currentHand->getPlayerArray()[i]->getMyActiveStatus() && currentHand->getPlayerArray()[i]->getMyAction() != 1 && currentHand->getPlayerArray()[i]->getMyCardsValueInt() == currentHand->getRiver()->getHighestCardsValue() ) {
|
if(currentHand->getPlayerArray()[i]->getMyActiveStatus() && currentHand->getPlayerArray()[i]->getMyAction() != 1 && currentHand->getPlayerArray()[i]->getMyCardsValueInt() == currentHand->getCurrentBeRo()->getHighestCardsValue() ) {
|
||||||
|
|
||||||
// QPalette tempPalette = groupBoxArray[i]->palette();
|
// QPalette tempPalette = groupBoxArray[i]->palette();
|
||||||
// tempPalette.setColor(QPalette::Window, highlight);
|
// tempPalette.setColor(QPalette::Window, highlight);
|
||||||
|
|||||||
@@ -614,7 +614,7 @@ ServerRecvStateStartRound::Process(ServerRecvThread &server)
|
|||||||
else // hand is over
|
else // hand is over
|
||||||
{
|
{
|
||||||
// Let the engine find out the winner(s).
|
// Let the engine find out the winner(s).
|
||||||
curGame.getCurrentHand()->getRiver()->postRiverRun();
|
curGame.getCurrentHand()->getCurrentBeRo()->run();
|
||||||
|
|
||||||
// Retrieve active players. If only one player is left, no cards are shown.
|
// Retrieve active players. If only one player is left, no cards are shown.
|
||||||
std::list<PlayerInterface *> activePlayers = GetActivePlayers(curGame);
|
std::list<PlayerInterface *> activePlayers = GetActivePlayers(curGame);
|
||||||
|
|||||||
Reference in New Issue
Block a user