gui freeze
This commit is contained in:
BIN
Binary file not shown.
|
After Width: | Height: | Size: 7.5 KiB |
@@ -58,6 +58,7 @@ LocalHand::LocalHand(EngineFactory *f, GuiInterface *g, BoardInterface *b, Playe
|
||||
int tempBoardArray[5];
|
||||
int tempPlayerArray[2];
|
||||
int tempPlayerAndBoardArray[7];
|
||||
int sBluff;
|
||||
for(i=0; i<5; i++) {
|
||||
tempBoardArray[i] = cardsArray[i];
|
||||
tempPlayerAndBoardArray[i+2] = cardsArray[i];
|
||||
@@ -72,12 +73,20 @@ LocalHand::LocalHand(EngineFactory *f, GuiInterface *g, BoardInterface *b, Playe
|
||||
}
|
||||
playerArray[i]->setMyCards(tempPlayerArray);
|
||||
playerArray[i]->setMyCardsValueInt(myCardsValue.cardsValue(tempPlayerAndBoardArray,playerArray[i]->getMyBestHandPosition()));
|
||||
|
||||
// myBestHandPosition auf Fehler ueberpruefen
|
||||
for(j=0; j<5; j++) {
|
||||
if((playerArray[i]->getMyBestHandPosition())[j] == -1) {
|
||||
cout << "FEHLER bei myBestHandPosition-Ermittlung!!!" << endl;
|
||||
cout << "ERROR get myBestHandPosition in localhand.cpp" << endl;
|
||||
}
|
||||
}
|
||||
|
||||
// sBluff für alle aktiver Spieler außer human player setzen
|
||||
if(i) {
|
||||
myTool.getRandNumber(1,100,1,&sBluff,0);
|
||||
playerArray[i]->setSBluff(sBluff);
|
||||
}
|
||||
|
||||
k++;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
|
||||
using namespace std;
|
||||
|
||||
LocalPlayer::LocalPlayer(BoardInterface *b, int id, std::string name, std::string avatar, int sC, bool aS, int mB) : PlayerInterface(), actualHand(0), actualBoard(b), myCardsValue(0), myID(id), myName(name), myAvatar(avatar), myDude(0), myDude4(0), myCardsValueInt(0), myOdds(-1.0), myCash(sC), mySet(0), myAction(0), myButton(mB), myActiveStatus(aS), myTurn(0), myRoundStartCash(0)
|
||||
LocalPlayer::LocalPlayer(BoardInterface *b, int id, std::string name, std::string avatar, int sC, bool aS, int mB) : PlayerInterface(), actualHand(0), actualBoard(b), myCardsValue(0), myID(id), myName(name), myAvatar(avatar), myDude(0), myDude4(0), myCardsValueInt(0), myOdds(-1.0), myCash(sC), mySet(0), myAction(0), myButton(mB), myActiveStatus(aS), myTurn(0), myRoundStartCash(0), sBluff(0)
|
||||
{
|
||||
// myBestHandPosition mit -1 initialisieren
|
||||
int i;
|
||||
@@ -133,6 +133,8 @@ void LocalPlayer::preflopEngine() {
|
||||
|
||||
int bet = 0;
|
||||
int raise = 0;
|
||||
int cBluff;
|
||||
Tools myTool;
|
||||
|
||||
// temporär solange preflopValue und flopValue noch nicht bereinigt für sechs und sieben spieler
|
||||
int players = actualHand->getActualQuantityPlayers();
|
||||
@@ -143,7 +145,7 @@ void LocalPlayer::preflopEngine() {
|
||||
|
||||
// Niveaus setzen + Dude + Anzahl Gegenspieler
|
||||
// 1. Fold -- Call
|
||||
myNiveau[0] = 40 + myDude4 - 6*(players - 2);
|
||||
myNiveau[0] = 42 + myDude4 - 6*(players - 2);
|
||||
// 3. Call -- Raise
|
||||
myNiveau[2] = 53 + myDude4 - 6*(players - 2);
|
||||
|
||||
@@ -166,24 +168,18 @@ void LocalPlayer::preflopEngine() {
|
||||
// cout << myID << ": " << myHoleCardsValue << " - " << myNiveau[0] << " " << myNiveau[2] << " - " << myCards[0] << " " << myCards[1] << endl;
|
||||
|
||||
// Aggresivität des humanPlayers auslesen
|
||||
int aggValue = (int)(((actualHand->getPlayerArray()[0]->getMyAggressive()*0.1)/7.0 - 1.0/actualHand->getActualQuantityPlayers())*7.0);
|
||||
int aggValue = (int)(((actualHand->getPlayerArray()[0]->getMyAggressive()*1.0)/7.0 - 1.0/actualHand->getActualQuantityPlayers())*14.0);
|
||||
|
||||
// if(aggValue > 0) {
|
||||
// myNiveau[0] -= aggValue;
|
||||
// myNiveau[2] -= aggValue;
|
||||
// }
|
||||
// cout << aggValue << " ";
|
||||
|
||||
myNiveau[0] -= aggValue;
|
||||
myNiveau[2] -= aggValue;
|
||||
|
||||
// int aggValue = ( (50*(actualHand->getPlayerArray()[0]->getMyAverageSets()-6*actualHand->getSmallBlind())) / (actualHand->getStartQuantityPlayers()*actualHand->getStartCash() - 6*actualHand->getSmallBlind()) );
|
||||
|
||||
// if(aggValue > 0) {
|
||||
// myNiveau[0] -= aggValue;
|
||||
// myNiveau[2] -= aggValue;
|
||||
// }
|
||||
|
||||
// cout << "Spieler " << myID << ": Dude " << myDude4 << "\t Wert " << myHoleCardsValue << "\t Niveau " << myNiveau[0] << " " << myNiveau[1] << " " << myNiveau[2] << "\t Agg " << aggValue << " " << endl;
|
||||
|
||||
// cout << "Spieler " << myID << ": Dude " << myDude4 << "\t Wert " << myHoleCardsValue << "\t Niveau " << myNiveau[0] << " " << myNiveau[1] << " " << myNiveau[2] << "\t Agg " << aggValue << " " << endl;
|
||||
|
||||
// Check-Bluff generieren
|
||||
myTool.getRandNumber(1,100,1,&cBluff,0);
|
||||
|
||||
// aktive oder passivie Situation ? -> im preflop nur passiv
|
||||
|
||||
@@ -201,7 +197,7 @@ void LocalPlayer::preflopEngine() {
|
||||
else {
|
||||
myAction = 3;
|
||||
}
|
||||
|
||||
|
||||
// Standard-Raise-Routine
|
||||
} else {
|
||||
// raise-Betrag ermitteln
|
||||
@@ -216,6 +212,13 @@ void LocalPlayer::preflopEngine() {
|
||||
}
|
||||
myAction = 5;
|
||||
}
|
||||
|
||||
// auf cBluff testen --> call statt raise
|
||||
if(cBluff > 80) myAction = 3;
|
||||
if(cBluff > 70 && myOdds >= myNiveau[2] + 4) myAction = 3;
|
||||
if(cBluff > 60 && myOdds >= myNiveau[2] + 8) myAction = 3;
|
||||
if(cBluff > 50 && myOdds >= myNiveau[2] + 12) myAction = 3;
|
||||
|
||||
}
|
||||
else {
|
||||
// call
|
||||
@@ -232,6 +235,36 @@ void LocalPlayer::preflopEngine() {
|
||||
}
|
||||
}
|
||||
|
||||
cout << sBluff << endl;
|
||||
|
||||
// auf sBluff testen --> raise statt call oder fold
|
||||
if(sBluff < 100/(((actualHand->getActualQuantityPlayers()-2)*6)+3) && myOdds < myNiveau[2] && actualHand->getPreflop()->getHighestSet() == 2*actualHand->getSmallBlind()) {
|
||||
|
||||
cout << "sBLUFF!" << endl;
|
||||
|
||||
// Gegner raisen ebenfalls -> call
|
||||
if(actualHand->getPreflop()->getHighestSet() >= 12*actualHand->getSmallBlind()) {
|
||||
myAction = 3;
|
||||
}
|
||||
// Standard-Raise-Routine
|
||||
else {
|
||||
// raise-Betrag ermitteln
|
||||
raise = (sBluff/(8-actualHand->getActualQuantityPlayers()))*actualHand->getSmallBlind();
|
||||
// raise-Betrag zu klein -> mindestens Standard-raise
|
||||
if(raise < actualHand->getPreflop()->getHighestSet()) {
|
||||
raise = actualHand->getPreflop()->getHighestSet();
|
||||
}
|
||||
// all in bei nur wenigen Chips oder knappem raise
|
||||
if(myCash/(2*actualHand->getSmallBlind()) <= 6 || raise >= (myCash*4)/5) {
|
||||
raise = myCash;
|
||||
}
|
||||
myAction = 5;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
evaluation(bet, raise);
|
||||
}
|
||||
|
||||
@@ -240,6 +273,9 @@ void LocalPlayer::flopEngine() {
|
||||
|
||||
int raise = 0;
|
||||
int bet = 0;
|
||||
int i;
|
||||
int cBluff;
|
||||
Tools myTool;
|
||||
|
||||
// übergang solange preflopValue und flopValue noch nicht bereinigt
|
||||
int players = actualHand->getActualQuantityPlayers();
|
||||
@@ -249,24 +285,26 @@ void LocalPlayer::flopEngine() {
|
||||
|
||||
// Niveaus setzen + Dude + Anzahl Gegenspieler
|
||||
// 1. Fold -- Call
|
||||
myNiveau[0] = 40 + myDude4 - 6*(players - 2);
|
||||
myNiveau[0] = 42 + myDude4 - 6*(players - 2);
|
||||
// 2. Check -- Bet
|
||||
myNiveau[1] = 52 + myDude4 - 6*(players - 2);
|
||||
myNiveau[1] = 54 + myDude4 - 6*(players - 2);
|
||||
// 3. Call -- Raise
|
||||
myNiveau[2] = 64 + myDude4 - 6*(players - 2);
|
||||
|
||||
// auf Aggresivität des humanPlayers eingehen
|
||||
// int aggValue = ( (50*(actualHand->getPlayerArray()[0]->getMyAverageSets()-6*actualHand->getSmallBlind())) / (actualHand->getStartQuantityPlayers()*actualHand->getStartCash() - 6*actualHand->getSmallBlind()) );
|
||||
|
||||
// if(aggValue > 0) {
|
||||
// myNiveau[0] -= aggValue;
|
||||
// myNiveau[2] -= aggValue;
|
||||
// }
|
||||
myNiveau[2] = 66 + myDude4 - 6*(players - 2);
|
||||
|
||||
// eigenes mögliches highestSet
|
||||
int individualHighestSet = actualHand->getFlop()->getHighestSet();
|
||||
if(individualHighestSet > myCash) individualHighestSet = myCash;
|
||||
|
||||
// Aggresivität des humanPlayers auslesen
|
||||
int aggValue = (int)(((actualHand->getPlayerArray()[0]->getMyAggressive()*1.0)/7.0 - 1.0/actualHand->getActualQuantityPlayers())*14.0);
|
||||
|
||||
for(i=0; i<3; i++) {
|
||||
myNiveau[i] -= aggValue;
|
||||
}
|
||||
|
||||
// Check-Bluff generieren
|
||||
myTool.getRandNumber(1,100,1,&cBluff,0);
|
||||
|
||||
// aktiv oder passiv?
|
||||
if(actualHand->getFlop()->getHighestSet() > 0) {
|
||||
|
||||
@@ -311,6 +349,13 @@ void LocalPlayer::flopEngine() {
|
||||
}
|
||||
myAction = 5;
|
||||
}
|
||||
|
||||
// auf cBluff testen --> call statt raise
|
||||
if(cBluff > 90) myAction = 3;
|
||||
if(cBluff > 80 && myOdds >= myNiveau[2] + 4) myAction = 3;
|
||||
if(cBluff > 70 && myOdds >= myNiveau[2] + 8) myAction = 3;
|
||||
if(cBluff > 60 && myOdds >= myNiveau[2] + 12) myAction = 3;
|
||||
|
||||
}
|
||||
else {
|
||||
// call -> über niveau0, schon einiges gesetzt im flop, schon einiges insgesamt gesetzt
|
||||
@@ -329,12 +374,8 @@ void LocalPlayer::flopEngine() {
|
||||
}
|
||||
}
|
||||
else {
|
||||
// check
|
||||
if(myOdds < myNiveau[1]) {
|
||||
myAction = 2;
|
||||
}
|
||||
// bet
|
||||
else {
|
||||
if(myOdds >= myNiveau[1]) {
|
||||
bet = (((int)myOdds-myNiveau[1])/8)*2*actualHand->getSmallBlind();
|
||||
// bet zu klein
|
||||
if(bet == 0) {
|
||||
@@ -342,13 +383,23 @@ void LocalPlayer::flopEngine() {
|
||||
}
|
||||
// all in bei nur wenigen Chips
|
||||
if(myCash/(2*actualHand->getSmallBlind()) <= 6) {
|
||||
raise = myCash;
|
||||
bet = myCash;
|
||||
}
|
||||
// all in bei knappem bet
|
||||
if(bet > (myCash*4.0)/5.0) {
|
||||
bet = myCash;
|
||||
}
|
||||
myAction = 4;
|
||||
|
||||
// auf cBluff testen --> check statt bet
|
||||
if(cBluff > 80) myAction = 2;
|
||||
if(cBluff > 70 && myOdds >= myNiveau[1] + 4) myAction = 2;
|
||||
if(cBluff > 60 && myOdds >= myNiveau[1] + 8) myAction = 2;
|
||||
if(cBluff > 50 && myOdds >= myNiveau[1] + 12) myAction = 2;
|
||||
}
|
||||
// bet
|
||||
else {
|
||||
myAction = 2;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -626,32 +677,37 @@ void LocalPlayer::turnEngine() {
|
||||
|
||||
int raise = 0;
|
||||
int bet = 0;
|
||||
int i;
|
||||
int cBluff;
|
||||
Tools myTool;
|
||||
|
||||
readFile();
|
||||
|
||||
// Niveaus setzen + Dude + Anzahl Gegenspieler
|
||||
// 1. Fold -- Call
|
||||
myNiveau[0] = 42 + myDude4/* - 6*(actualHand->getActualQuantityPlayers() - 2)*/;
|
||||
myNiveau[0] = 44 + myDude4/* - 6*(actualHand->getActualQuantityPlayers() - 2)*/;
|
||||
// 2. Check -- Bet
|
||||
myNiveau[1] = 53 + myDude4/* - 6*(actualHand->getActualQuantityPlayers() - 2)*/;
|
||||
myNiveau[1] = 55 + myDude4/* - 6*(actualHand->getActualQuantityPlayers() - 2)*/;
|
||||
// 3. Call -- Raise
|
||||
myNiveau[2] = 64 + myDude4/* - 6*(actualHand->getActualQuantityPlayers() - 2)*/;
|
||||
myNiveau[2] = 66 + myDude4/* - 6*(actualHand->getActualQuantityPlayers() - 2)*/;
|
||||
|
||||
// auf Aggresivität des humanPlayers eingehen
|
||||
// int aggValue = ( (50*(actualHand->getPlayerArray()[0]->getMyAverageSets()-6*actualHand->getSmallBlind())) / (actualHand->getStartQuantityPlayers()*actualHand->getStartCash() - 6*actualHand->getSmallBlind()) );
|
||||
// Aggresivität des humanPlayers auslesen
|
||||
int aggValue = (int)(((actualHand->getPlayerArray()[0]->getMyAggressive()*1.0)/7.0 - 1.0/actualHand->getActualQuantityPlayers())*14.0);
|
||||
|
||||
// if(aggValue > 0) {
|
||||
// myNiveau[0] -= aggValue;
|
||||
// myNiveau[2] -= aggValue;
|
||||
// }
|
||||
for(i=0; i<3; i++) {
|
||||
myNiveau[i] -= aggValue;
|
||||
}
|
||||
|
||||
// cout << "Spieler " << myID << ": Dude " << myDude4 << "\t Wert " << myHoleCardsValue << "\t Niveau " << myNiveau[0] << " " << myNiveau[1] << " " << myNiveau[2] << "\t Agg " << aggValue << " " << endl;
|
||||
// cout << "Spieler " << myID << ": Dude " << myDude4 << "\t Wert " << myHoleCardsValue << "\t Niveau " << myNiveau[0] << " " << myNiveau[1] << " " << myNiveau[2] << "\t Agg " << aggValue << " " << endl;
|
||||
|
||||
|
||||
// eigenes mögliches highestSet
|
||||
int individualHighestSet = actualHand->getTurn()->getHighestSet();
|
||||
if(individualHighestSet > myCash) individualHighestSet = myCash;
|
||||
|
||||
// Check-Bluff generieren
|
||||
myTool.getRandNumber(1,100,1,&cBluff,0);
|
||||
|
||||
// aktiv oder passiv?
|
||||
if(actualHand->getTurn()->getHighestSet() > 0) {
|
||||
|
||||
@@ -696,6 +752,11 @@ void LocalPlayer::turnEngine() {
|
||||
}
|
||||
myAction = 5;
|
||||
}
|
||||
// auf cBluff testen --> call statt raise
|
||||
if(cBluff > 90) myAction = 3;
|
||||
if(cBluff > 80 && myOdds >= myNiveau[2] + 5) myAction = 3;
|
||||
if(cBluff > 70 && myOdds >= myNiveau[2] + 10) myAction = 3;
|
||||
if(cBluff > 60 && myOdds >= myNiveau[2] + 15) myAction = 3;
|
||||
}
|
||||
else {
|
||||
// call -> über niveau0, schon einiges gesetzt im flop, schon einiges insgesamt gesetzt
|
||||
@@ -714,6 +775,147 @@ void LocalPlayer::turnEngine() {
|
||||
}
|
||||
}
|
||||
// aktiv
|
||||
else {
|
||||
// bet
|
||||
if(myOdds >= myNiveau[1]) {
|
||||
bet = (((int)myOdds-myNiveau[1])/6)*2*actualHand->getSmallBlind();
|
||||
if(bet == 0) {
|
||||
bet = 2*actualHand->getSmallBlind();
|
||||
}
|
||||
// all in bei nur wenigen Chips
|
||||
if(myCash/(2*actualHand->getSmallBlind()) <= 6) {
|
||||
bet = myCash;
|
||||
}
|
||||
// all in bei knappem bet
|
||||
if(bet > (myCash*4.0)/5.0) {
|
||||
bet = myCash;
|
||||
}
|
||||
myAction = 4;
|
||||
|
||||
// auf cBluff testen --> call statt raise
|
||||
if(cBluff > 90) myAction = 2;
|
||||
if(cBluff > 80 && myOdds >= myNiveau[2] + 5) myAction = 2;
|
||||
if(cBluff > 70 && myOdds >= myNiveau[2] + 10) myAction = 2;
|
||||
if(cBluff > 60 && myOdds >= myNiveau[2] + 15) myAction = 2;
|
||||
}
|
||||
// check
|
||||
else {
|
||||
myAction = 2;
|
||||
}
|
||||
}
|
||||
|
||||
evaluation(bet, raise);
|
||||
|
||||
}
|
||||
|
||||
|
||||
void LocalPlayer::riverEngine() {
|
||||
|
||||
ConfigFile myConfig;
|
||||
|
||||
// int tempArray[6];
|
||||
// int boardCards[5];
|
||||
// int i;
|
||||
|
||||
// for(i=0; i<2; i++) tempArray[i] = myCards[i];
|
||||
// actualBoard->getMyCards(boardCards);
|
||||
// for(i=0; i<4; i++) tempArray[2+i] = boardCards[i];
|
||||
|
||||
// for(i=0; i<5; i++) cout << tempArray[i] << " ";
|
||||
// cout << endl;
|
||||
|
||||
// cout << myID << ": ";
|
||||
|
||||
// turnCardsValue(tempArray);
|
||||
|
||||
|
||||
int raise = 0;
|
||||
int bet = 0;
|
||||
int i;
|
||||
|
||||
readFile();
|
||||
|
||||
// Niveaus setzen + Dude + Anzahl Gegenspieler
|
||||
// 1. Fold -- Call
|
||||
myNiveau[0] = 44 + myDude4/* - 6*(actualHand->getActualQuantityPlayers() - 2)*/;
|
||||
// 2. Check -- Bet
|
||||
myNiveau[1] = 55 + myDude4/* - 6*(actualHand->getActualQuantityPlayers() - 2)*/;
|
||||
// 3. Call -- Raise
|
||||
myNiveau[2] = 66 + myDude4/* - 6*(actualHand->getActualQuantityPlayers() - 2)*/;
|
||||
|
||||
// Aggresivität des humanPlayers auslesen
|
||||
int aggValue = (int)(((actualHand->getPlayerArray()[0]->getMyAggressive()*1.0)/7.0 - 1.0/actualHand->getActualQuantityPlayers())*14.0);
|
||||
|
||||
for(i=0; i<3; i++) {
|
||||
myNiveau[i] -= aggValue;
|
||||
}
|
||||
|
||||
// cout << "Spieler " << myID << ": Dude " << myDude4 << "\t Wert " << myHoleCardsValue << "\t Niveau " << myNiveau[0] << " " << myNiveau[1] << " " << myNiveau[2] << "\t Agg " << aggValue << " " << endl;
|
||||
|
||||
// eigenes mögliches highestSet
|
||||
int individualHighestSet = actualHand->getRiver()->getHighestSet();
|
||||
if(individualHighestSet > myCash) individualHighestSet = myCash;
|
||||
|
||||
// aktiv oder passiv?
|
||||
if(actualHand->getRiver()->getHighestSet() > 0) {
|
||||
|
||||
// Verhaeltnis Set / Cash
|
||||
if(myCash/individualHighestSet >= 25) {
|
||||
myNiveau[0] += (25-myCash/individualHighestSet)/10;
|
||||
} else {
|
||||
myNiveau[0] += (25-myCash/individualHighestSet)/3;
|
||||
}
|
||||
|
||||
// Verhaeltnis Set / Cash für raise
|
||||
if(myCash/individualHighestSet < 10) {
|
||||
myNiveau[2] += (10-myCash/individualHighestSet)/2;
|
||||
}
|
||||
|
||||
// raise (bei hohem Niveau)
|
||||
if(myOdds >= myNiveau[2]) {
|
||||
// raise-loop unterbinden -> d.h. entweder call oder bei superblatt all in
|
||||
if(actualHand->getRiver()->getHighestSet() >= 12*actualHand->getSmallBlind()) {
|
||||
// all in
|
||||
if(myOdds >= myNiveau[2] + 8) {
|
||||
raise = myCash;
|
||||
myAction = 5;
|
||||
}
|
||||
// nur call
|
||||
else {
|
||||
myAction = 3;
|
||||
}
|
||||
}
|
||||
// Standard-Raise-Routine
|
||||
else {
|
||||
// raise-Betrag ermitteln
|
||||
raise = (((int)myOdds-myNiveau[2])/2)*2*actualHand->getSmallBlind();
|
||||
// raise-Betrag zu klein -> mindestens Standard-raise
|
||||
if(raise == 0) {
|
||||
raise = actualHand->getRiver()->getHighestSet();
|
||||
}
|
||||
// all in bei nur wenigen Chips
|
||||
if(myCash/(2*actualHand->getSmallBlind()) <= 8) {
|
||||
raise = myCash;
|
||||
}
|
||||
myAction = 5;
|
||||
}
|
||||
}
|
||||
else {
|
||||
// call -> über niveau0, schon einiges gesetzt im flop, schon einiges insgesamt gesetzt
|
||||
if(myOdds >= myNiveau[0] || (mySet >= actualHand->getRiver()->getHighestSet()/2 && myOdds >= myNiveau[0]-5) || (myRoundStartCash-myCash > individualHighestSet && myNiveau[0]-3)) {
|
||||
// all in bei knappem call
|
||||
if(myCash-actualHand->getRiver()->getHighestSet() <= (myCash*1)/4) {
|
||||
raise = myCash;
|
||||
myAction = 5;
|
||||
}
|
||||
else myAction = 3;
|
||||
}
|
||||
// fold
|
||||
else {
|
||||
myAction = 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
// check
|
||||
if(myOdds < myNiveau[1]) {
|
||||
@@ -721,7 +923,7 @@ void LocalPlayer::turnEngine() {
|
||||
}
|
||||
// bet
|
||||
else {
|
||||
bet = (((int)myOdds-myNiveau[1])/6)*2*actualHand->getSmallBlind();
|
||||
bet = (((int)myOdds-myNiveau[1])/3)*2*actualHand->getSmallBlind();
|
||||
if(bet == 0) {
|
||||
bet = 2*actualHand->getSmallBlind();
|
||||
}
|
||||
@@ -735,147 +937,11 @@ void LocalPlayer::turnEngine() {
|
||||
}
|
||||
myAction = 4;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
evaluation(bet, raise);
|
||||
|
||||
}
|
||||
|
||||
|
||||
void LocalPlayer::riverEngine() {
|
||||
|
||||
ConfigFile myConfig;
|
||||
|
||||
// int tempArray[6];
|
||||
// int boardCards[5];
|
||||
// int i;
|
||||
|
||||
// for(i=0; i<2; i++) tempArray[i] = myCards[i];
|
||||
// actualBoard->getMyCards(boardCards);
|
||||
// for(i=0; i<4; i++) tempArray[2+i] = boardCards[i];
|
||||
|
||||
// for(i=0; i<5; i++) cout << tempArray[i] << " ";
|
||||
// cout << endl;
|
||||
|
||||
// cout << myID << ": ";
|
||||
|
||||
// turnCardsValue(tempArray);
|
||||
|
||||
|
||||
int raise = 0;
|
||||
int bet = 0;
|
||||
|
||||
readFile();
|
||||
|
||||
// Niveaus setzen + Dude + Anzahl Gegenspieler
|
||||
// 1. Fold -- Call
|
||||
myNiveau[0] = 42 + myDude4/* - 6*(actualHand->getActualQuantityPlayers() - 2)*/;
|
||||
// 2. Check -- Bet
|
||||
myNiveau[1] = 53 + myDude4/* - 6*(actualHand->getActualQuantityPlayers() - 2)*/;
|
||||
// 3. Call -- Raise
|
||||
myNiveau[2] = 64 + myDude4/* - 6*(actualHand->getActualQuantityPlayers() - 2)*/;
|
||||
|
||||
// auf Aggresivität des humanPlayers eingehen
|
||||
// int aggValue = ( (50*(actualHand->getPlayerArray()[0]->getMyAverageSets()-6*actualHand->getSmallBlind())) / (actualHand->getStartQuantityPlayers()*actualHand->getStartCash() - 6*actualHand->getSmallBlind()) );
|
||||
|
||||
// if(aggValue > 0) {
|
||||
// myNiveau[0] -= aggValue;
|
||||
// myNiveau[2] -= aggValue;
|
||||
// }
|
||||
|
||||
// cout << "Spieler " << myID << ": Dude " << myDude4 << "\t Wert " << myHoleCardsValue << "\t Niveau " << myNiveau[0] << " " << myNiveau[1] << " " << myNiveau[2] << "\t Agg " << aggValue << " " << endl;
|
||||
|
||||
// eigenes mögliches highestSet
|
||||
int individualHighestSet = actualHand->getRiver()->getHighestSet();
|
||||
if(individualHighestSet > myCash) individualHighestSet = myCash;
|
||||
|
||||
// aktiv oder passiv?
|
||||
if(actualHand->getRiver()->getHighestSet() > 0) {
|
||||
|
||||
// Verhaeltnis Set / Cash
|
||||
if(myCash/individualHighestSet >= 25) {
|
||||
myNiveau[0] += (25-myCash/individualHighestSet)/10;
|
||||
} else {
|
||||
myNiveau[0] += (25-myCash/individualHighestSet)/3;
|
||||
}
|
||||
|
||||
// Verhaeltnis Set / Cash für raise
|
||||
if(myCash/individualHighestSet < 10) {
|
||||
myNiveau[2] += (10-myCash/individualHighestSet)/2;
|
||||
}
|
||||
|
||||
// raise (bei hohem Niveau)
|
||||
if(myOdds >= myNiveau[2]) {
|
||||
|
||||
// raise-loop unterbinden -> d.h. entweder call oder bei superblatt all in
|
||||
if(actualHand->getRiver()->getHighestSet() >= 12*actualHand->getSmallBlind()) {
|
||||
// all in
|
||||
if(myOdds >= myNiveau[2] + 8) {
|
||||
raise = myCash;
|
||||
myAction = 5;
|
||||
}
|
||||
// nur call
|
||||
else {
|
||||
myAction = 3;
|
||||
}
|
||||
|
||||
// Standard-Raise-Routine
|
||||
} else {
|
||||
// raise-Betrag ermitteln
|
||||
raise = (((int)myOdds-myNiveau[2])/2)*2*actualHand->getSmallBlind();
|
||||
// raise-Betrag zu klein -> mindestens Standard-raise
|
||||
if(raise == 0) {
|
||||
raise = actualHand->getRiver()->getHighestSet();
|
||||
}
|
||||
// all in bei nur wenigen Chips
|
||||
if(myCash/(2*actualHand->getSmallBlind()) <= 8) {
|
||||
raise = myCash;
|
||||
}
|
||||
myAction = 5;
|
||||
}
|
||||
}
|
||||
else {
|
||||
// call -> über niveau0, schon einiges gesetzt im flop, schon einiges insgesamt gesetzt
|
||||
if(myOdds >= myNiveau[0] || (mySet >= actualHand->getRiver()->getHighestSet()/2 && myOdds >= myNiveau[0]-5) || (myRoundStartCash-myCash > individualHighestSet && myNiveau[0]-3)) {
|
||||
// all in bei knappem call
|
||||
if(myCash-actualHand->getRiver()->getHighestSet() <= (myCash*1)/4) {
|
||||
raise = myCash;
|
||||
myAction = 5;
|
||||
}
|
||||
else myAction = 3;
|
||||
}
|
||||
// fold
|
||||
else {
|
||||
myAction = 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
// check
|
||||
if(myOdds < myNiveau[1]) {
|
||||
myAction = 2;
|
||||
}
|
||||
// bet
|
||||
else {
|
||||
bet = (((int)myOdds-myNiveau[1])/3)*2*actualHand->getSmallBlind();
|
||||
if(bet == 0) {
|
||||
bet = 2*actualHand->getSmallBlind();
|
||||
}
|
||||
// all in bei nur wenigen Chips
|
||||
if(myCash/(2*actualHand->getSmallBlind()) <= 6) {
|
||||
raise = myCash;
|
||||
}
|
||||
// all in bei knappem bet
|
||||
if(bet > (myCash*4.0)/5.0) {
|
||||
bet = myCash;
|
||||
}
|
||||
myAction = 4;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
evaluation(bet, raise);
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -1644,6 +1710,7 @@ int LocalPlayer::flopCardsValue(int* cards) {
|
||||
|
||||
}
|
||||
|
||||
|
||||
void LocalPlayer::readFile() {
|
||||
|
||||
ConfigFile myConfig;
|
||||
|
||||
@@ -105,6 +105,9 @@ public:
|
||||
return sum;
|
||||
}
|
||||
|
||||
void setSBluff ( int theValue ) { sBluff = theValue; }
|
||||
int getSBluff() const { return sBluff; }
|
||||
|
||||
void action();
|
||||
|
||||
void preflopEngine();
|
||||
@@ -124,6 +127,7 @@ public:
|
||||
void readFile();
|
||||
|
||||
void evaluation(int, int);
|
||||
|
||||
|
||||
|
||||
private:
|
||||
@@ -159,6 +163,8 @@ private:
|
||||
int myAverageSets[4];
|
||||
bool myAggressive[7];
|
||||
|
||||
int sBluff;
|
||||
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
@@ -163,6 +163,8 @@ void LocalRiver::postRiverRun() {
|
||||
// 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);
|
||||
|
||||
cout << "myAggressive: " << myHand->getPlayerArray()[0]->getMyAggressive() << endl;
|
||||
|
||||
// Pot-Verteilung
|
||||
distributePot();
|
||||
|
||||
|
||||
@@ -79,6 +79,9 @@ public:
|
||||
|
||||
virtual void setMyAggressive(const bool& theValue) =0;
|
||||
virtual int getMyAggressive() const =0;
|
||||
|
||||
virtual void setSBluff ( int theValue ) =0;
|
||||
virtual int getSBluff() const =0;
|
||||
|
||||
virtual void action() =0;
|
||||
|
||||
|
||||
+51
-48
@@ -819,38 +819,6 @@
|
||||
<set>Qt::AlignCenter</set>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QFrame" name="frame_Cards0" >
|
||||
<property name="geometry" >
|
||||
<rect>
|
||||
<x>95</x>
|
||||
<y>40</y>
|
||||
<width>118</width>
|
||||
<height>111</height>
|
||||
</rect>
|
||||
</property>
|
||||
<widget class="QLabel" name="textLabel_Status0" >
|
||||
<property name="geometry" >
|
||||
<rect>
|
||||
<x>9</x>
|
||||
<y>35</y>
|
||||
<width>100</width>
|
||||
<height>40</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="minimumSize" >
|
||||
<size>
|
||||
<width>0</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="text" >
|
||||
<string/>
|
||||
</property>
|
||||
<property name="alignment" >
|
||||
<set>Qt::AlignCenter</set>
|
||||
</property>
|
||||
</widget>
|
||||
</widget>
|
||||
<widget class="QLabel" name="label_PlayerName0" >
|
||||
<property name="geometry" >
|
||||
<rect>
|
||||
@@ -1065,6 +1033,41 @@
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QFrame" name="frame_Cards0" >
|
||||
<property name="geometry" >
|
||||
<rect>
|
||||
<x>95</x>
|
||||
<y>40</y>
|
||||
<width>118</width>
|
||||
<height>111</height>
|
||||
</rect>
|
||||
</property>
|
||||
<widget class="QLabel" name="textLabel_Status0" >
|
||||
<property name="geometry" >
|
||||
<rect>
|
||||
<x>9</x>
|
||||
<y>35</y>
|
||||
<width>100</width>
|
||||
<height>40</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="minimumSize" >
|
||||
<size>
|
||||
<width>0</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="text" >
|
||||
<string/>
|
||||
</property>
|
||||
<property name="alignment" >
|
||||
<set>Qt::AlignCenter</set>
|
||||
</property>
|
||||
<property name="textInteractionFlags" >
|
||||
<enum>Qt::NoTextInteraction</enum>
|
||||
</property>
|
||||
</widget>
|
||||
</widget>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
@@ -1790,22 +1793,6 @@
|
||||
<height>185</height>
|
||||
</size>
|
||||
</property>
|
||||
<widget class="QLabel" name="label_5" >
|
||||
<property name="geometry" >
|
||||
<rect>
|
||||
<x>89</x>
|
||||
<y>60</y>
|
||||
<width>90</width>
|
||||
<height>124</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="pixmap" >
|
||||
<pixmap resource="resources.qrc" >:/guiv2/resources/guiv2/cardholder_03.png</pixmap>
|
||||
</property>
|
||||
<property name="scaledContents" >
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLabel" name="label_6" >
|
||||
<property name="geometry" >
|
||||
<rect>
|
||||
@@ -2490,6 +2477,22 @@
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<widget class="QLabel" name="label_5" >
|
||||
<property name="geometry" >
|
||||
<rect>
|
||||
<x>89</x>
|
||||
<y>60</y>
|
||||
<width>90</width>
|
||||
<height>124</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="pixmap" >
|
||||
<pixmap resource="resources.qrc" >:/guiv2/resources/guiv2/cardholder_03.png</pixmap>
|
||||
</property>
|
||||
<property name="scaledContents" >
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLabel" name="textLabel_handLabel" >
|
||||
<property name="geometry" >
|
||||
<rect>
|
||||
|
||||
@@ -54,7 +54,7 @@ const int maxQuantityPlayersConst = 7;
|
||||
using namespace std;
|
||||
|
||||
mainWindowImpl::mainWindowImpl(QMainWindow *parent)
|
||||
: QMainWindow(parent), actualGame(0), actualHand(0), mySession(0), maxQuantityPlayers(maxQuantityPlayersConst), gameSpeed(0), debugMode(0), breakAfterActualHand(FALSE)
|
||||
: QMainWindow(parent), actualGame(0), actualHand(0), mySession(0), maxQuantityPlayers(maxQuantityPlayersConst), gameSpeed(0), debugMode(1), breakAfterActualHand(FALSE)
|
||||
{
|
||||
int i;
|
||||
|
||||
@@ -124,6 +124,7 @@ mainWindowImpl::mainWindowImpl(QMainWindow *parent)
|
||||
pixmapLabel_card0a->setObjectName(QString::fromUtf8("pixmapLabel_card0a"));
|
||||
pixmapLabel_card0a->setScaledContents(true);
|
||||
pixmapLabel_card0a->setGeometry(QRect(0, 0, 80, 111));
|
||||
// pixmapLabel_card0a->setFocusPolicy(Qt::NoFocus);
|
||||
|
||||
pixmapLabel_card0b = new MyCardsPixmapLabel(frame_Cards0);
|
||||
pixmapLabel_card0b->setObjectName(QString::fromUtf8("pixmapLabel_card0b"));
|
||||
@@ -2156,10 +2157,15 @@ void mainWindowImpl::keyPressEvent ( QKeyEvent * event ) {
|
||||
ctrlPressed = TRUE;
|
||||
// QTimer::SingleShot
|
||||
} //CTRL
|
||||
// if (event->key() == 65) { paintStartSplash();
|
||||
if (event->key() == 65) { pixmapLabel_card0a->setUpdatesEnabled(FALSE); }
|
||||
// if (event->key() == 66) { label_logo->hide(); }
|
||||
}
|
||||
|
||||
// bool mainWindowImpl::event ( QEvent * event ) {
|
||||
|
||||
// if(event->type() == QEvent::MouseMove) { event->setAccepted ( FALSE ); }
|
||||
// }
|
||||
|
||||
void mainWindowImpl::switchLeftToolBox() {
|
||||
|
||||
if (groupBox_LeftToolBox->isHidden()) { groupBox_LeftToolBox->show(); }
|
||||
|
||||
@@ -180,6 +180,8 @@ public slots:
|
||||
void breakButtonClicked();
|
||||
|
||||
void keyPressEvent ( QKeyEvent*);
|
||||
// bool event ( QEvent * );
|
||||
|
||||
void switchLeftToolBox();
|
||||
void switchRightToolBox();
|
||||
void switchFullscreen();
|
||||
|
||||
@@ -65,8 +65,9 @@ void MyCardsPixmapLabel::nextFadeOutFrame() {
|
||||
update();
|
||||
}
|
||||
else {
|
||||
|
||||
fadeOutTimer->stop();
|
||||
fadeOutAction = FALSE;
|
||||
// fadeOutAction = FALSE;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -177,3 +178,12 @@ void MyCardsPixmapLabel::paintEvent(QPaintEvent * event) {
|
||||
|
||||
|
||||
}
|
||||
|
||||
// bool MyCardsPixmapLabel::event ( QEvent * event ) {
|
||||
//
|
||||
// if(event->type() == QEvent::MouseMove) { event->ignore(); }
|
||||
// QLabel::event(event);
|
||||
// }
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -46,6 +46,7 @@ public slots:
|
||||
void nextFadeOutFrame();
|
||||
void nextFlipCardsFrame();
|
||||
|
||||
// bool event ( QEvent * );
|
||||
|
||||
|
||||
private:
|
||||
|
||||
Reference in New Issue
Block a user