From bebc215e887939f2f0aceadae93ea368b4220aa1 Mon Sep 17 00:00:00 2001 From: floty Date: Tue, 13 Jul 2010 20:26:46 +0000 Subject: [PATCH] changes in logging with sqlite-db --- src/gui/qt/gametable/log/log.cpp | 2985 +++++++++++++++--------------- 1 file changed, 1493 insertions(+), 1492 deletions(-) diff --git a/src/gui/qt/gametable/log/log.cpp b/src/gui/qt/gametable/log/log.cpp index 109af4cd..7f2b3144 100755 --- a/src/gui/qt/gametable/log/log.cpp +++ b/src/gui/qt/gametable/log/log.cpp @@ -53,7 +53,7 @@ Log::Log(gameTableImpl* w, ConfigFile *c) : myW(w), myConfig(c), myLogDir(0), my lastGameID = 0; if(myConfig->readConfigInt("LogOnOff")) { - //if write logfiles is enabled + //if write logfiles is enabled QDir logDir(QString::fromUtf8(myConfig->readConfigString("LogDir").c_str())); if(myConfig->readConfigString("LogDir") != "" && logDir.exists()) { @@ -66,7 +66,7 @@ Log::Log(gameTableImpl* w, ConfigFile *c) : myW(w), myConfig(c), myLogDir(0), my QPixmap logoChipPixmapFile(":/gfx/logoChip3D.png"); logoChipPixmapFile.save(myLogDir->absolutePath()+"/logo.png"); - // myW->textBrowser_Log->append(myHtmlLogFile->fileName()); + // myW->textBrowser_Log->append(myHtmlLogFile->fileName()); // erstelle html-Datei myHtmlLogFile->open( QIODevice::WriteOnly ); @@ -91,7 +91,7 @@ Log::Log(gameTableImpl* w, ConfigFile *c) : myW(w), myConfig(c), myLogDir(0), my // Session-Tabelle sql = "CREATE TABLE Session ("; - sql += "Version TEXT,"; + sql += "PokerTH_Version TEXT,"; sql += "Date TEXT,"; sql += "Time TEXT,"; sql += "PRIMARY KEY(Date,Time))"; @@ -124,12 +124,18 @@ Log::Log(gameTableImpl* w, ConfigFile *c) : myW(w), myConfig(c), myLogDir(0), my sql = "CREATE TABLE Hand ("; sql += "HandID INTEGER NOT NULL,"; sql += "GameID INTEGER NOT NULL,"; + sql += "Sb_Amount INTEGER,"; + sql += "Sb_Seat INTEGER,"; + sql += "Bb_Amount INTEGER,"; + sql += "Bb_Seat INTEGER,"; + sql += "Dealer_Seat INTEGER,"; for(i=1; i<=MAX_NUMBER_OF_PLAYERS; i++) { sql += "Seat_" + QString("%1").arg(i) + "_Cash INTEGER,"; sql += "Seat_" + QString("%1").arg(i) + "_Card_1 INTEGER,"; sql += "Seat_" + QString("%1").arg(i) + "_Card_2 INTEGER,"; + sql += "Seat_" + QString("%1").arg(i) + "_Hand TEXT,"; } - for(i=1; i<=5; i++) { + for(i=1; i<=5; i++) { sql += "BoardCard_" + QString("%1").arg(i) + " INTEGER,"; } sql += "PRIMARY KEY(HandID,GameID))"; @@ -163,9 +169,9 @@ Log::Log(gameTableImpl* w, ConfigFile *c) : myW(w), myConfig(c), myLogDir(0), my QStringList logFileList = myLogDir->entryList(filters, QDir::Files); for(i=0; i daysUntilWaste) { - // cout << QString::QString(myLogDir->absolutePath()+"/"+logFileList.at(i)).toStdString() << endl; - QFile fileToDelete(myLogDir->absolutePath()+"/"+logFileList.at(i)); - fileToDelete.remove(); +// cout << QString::QString(myLogDir->absolutePath()+"/"+logFileList.at(i)).toStdString() << endl; + QFile fileToDelete(myLogDir->absolutePath()+"/"+logFileList.at(i)); + fileToDelete.remove(); } - + } } @@ -191,1700 +197,1695 @@ Log::Log(gameTableImpl* w, ConfigFile *c) : myW(w), myConfig(c), myLogDir(0), my Log::~Log() { - cerr << "log destruktor"; - delete myConfig; - delete myLogDir; - delete myHtmlLogFile; - delete mySqliteLogDb; +qDebug() << "close log"; - myConfig = 0; + // Datenbank schließe + mySqliteLogDb->close(); + + delete myConfig; + delete myLogDir; + delete myHtmlLogFile; + delete mySqliteLogDb; + + myConfig = 0; } -void Log::closeLogDbAtExit() -{ - // Datenbank schließen - mySqliteLogDb->close(); - delete mySqliteLogDb; - mySqliteLogDb = NULL; -} - - void Log::logPlayerActionMsg(QString msg, int playerID, int action, int setValue) { - switch (action) { + switch (action) { - case 1: msg += " folds."; - break; - case 2: msg += " checks."; - break; - case 3: msg += " calls "; - break; - case 4: msg += " bets "; - break; - case 5: msg += " bets "; - break; - case 6: msg += " is all in with "; - break; - default: msg += "ERROR"; - } + case 1: msg += " folds."; + break; + case 2: msg += " checks."; + break; + case 3: msg += " calls "; + break; + case 4: msg += " bets "; + break; + case 5: msg += " bets "; + break; + case 6: msg += " is all in with "; + break; + default: msg += "ERROR"; + } + + if (action >= 3) { msg += "$"+QString::number(setValue,10)+"."; } + + myW->textBrowser_Log->append("getChatLogTextColor()+";\">"+msg+""); - if (action >= 3) { msg += "$"+QString::number(setValue,10)+"."; } - - myW->textBrowser_Log->append("getChatLogTextColor()+";\">"+msg+""); - - if(myConfig->readConfigInt("LogOnOff")) { + if(myConfig->readConfigInt("LogOnOff")) { //if write logfiles is enabled - logFileStreamString += msg+"
\n"; + logFileStreamString += msg+"
\n"; + + if(myConfig->readConfigInt("LogInterval") == 0) { + writeLogFileStream(logFileStreamString); + logFileStreamString = ""; + } - if(myConfig->readConfigInt("LogInterval") == 0) { - writeLogFileStream(logFileStreamString); - logFileStreamString = ""; - } + if(mySqliteLogDb->isOpen()) { - if(mySqliteLogDb->isOpen()) { + QSqlQuery query(*mySqliteLogDb); + QString sql; - QSqlQuery query(*mySqliteLogDb); - QString sql; + sql = "INSERT INTO Action (HandID,GameID,BeRo,Player,Action,Amount) VALUES ("; + sql += QString::number(myW->getSession()->getCurrentGame()->getCurrentHandID(),10); + sql += "," + QString::number(myW->getSession()->getCurrentGame()->getMyGameID(),10); + sql += "," + QString::number(myW->getSession()->getCurrentGame()->getCurrentHand()->getCurrentBeRo()->getMyBeRoID(),10); + sql += "," + QString::number(playerID,10); + sql += "," + QString::number(action,10); + sql += "," + QString::number(setValue,10); + sql += ")"; - sql = "INSERT INTO Action (HandID,GameID,BeRo,Player,Action,Amount) VALUES ("; - sql += QString::number(myW->getSession()->getCurrentGame()->getCurrentHandID(),10); - sql += "," + QString::number(myW->getSession()->getCurrentGame()->getMyGameID(),10); - sql += "," + QString::number(myW->getSession()->getCurrentGame()->getCurrentHand()->getCurrentBeRo()->getMyBeRoID(),10); - sql += "," + QString::number(playerID,10); - sql += "," + QString::number(action,10); - sql += "," + QString::number(setValue,10); - sql += ")"; + if(!query.exec(sql)) { + QMessageBox::critical(0, tr("ERROR"),query.lastError().text().toUtf8().data(), QMessageBox::Cancel); + } - if(!query.exec(sql)) { - QMessageBox::critical(0, tr("ERROR"),query.lastError().text().toUtf8().data(), QMessageBox::Cancel); - } + } - } - - } + } } void Log::logNewGameHandMsg(int gameID, int handID) { - PlayerListConstIterator it_c; - HandInterface *currentHand = myW->getSession()->getCurrentGame()->getCurrentHand(); + PlayerListConstIterator it_c; + HandInterface *currentHand = myW->getSession()->getCurrentGame()->getCurrentHand(); - myW->textBrowser_Log->append("getChatLogTextColor()+"; font-size:large; font-weight:bold\">## Game: "+QString::number(gameID,10)+" | Hand: "+QString::number(handID,10)+" ##"); + myW->textBrowser_Log->append("getChatLogTextColor()+"; font-size:large; font-weight:bold\">## Game: "+QString::number(gameID,10)+" | Hand: "+QString::number(handID,10)+" ##"); - if(myConfig->readConfigInt("LogOnOff")) { + if(myConfig->readConfigInt("LogOnOff")) { //if write logfiles is enabled - int i; + int i; - logFileStreamString += "

Game: "+QString::number(gameID,10)+" | Hand: "+QString::number(handID,10)+"
"; - logFileStreamString += "BLIND LEVEL: $"+QString::number(currentHand->getSmallBlind())+" / $"+QString::number(currentHand->getSmallBlind()*2)+"
"; + logFileStreamString += "

Game: "+QString::number(gameID,10)+" | Hand: "+QString::number(handID,10)+"
"; + logFileStreamString += "BLIND LEVEL: $"+QString::number(currentHand->getSmallBlind())+" / $"+QString::number(currentHand->getSmallBlind()*2)+"
"; - if(!mySqliteLogDb->open()) { - QMessageBox::critical(0, tr("ERROR"),mySqliteLogDb->lastError().text().toUtf8().data(), QMessageBox::Cancel); - } - - - if(mySqliteLogDb->isOpen()) { - - QSqlQuery query(*mySqliteLogDb); - QString sql; - - // bei Beginn eines Games - if(handID == 1) { - sql = "INSERT INTO Game (GameID,Startmoney,StartSb,DealerPos"; - for(i=1;i<=MAX_NUMBER_OF_PLAYERS; i++) { - sql += ",Seat_" + QString::number(i,10); + if(!mySqliteLogDb->open()) { + QMessageBox::critical(0, tr("ERROR"),mySqliteLogDb->lastError().text().toUtf8().data(), QMessageBox::Cancel); } - sql += ") VALUES ("; - sql += QString::number(gameID,10) + ","; - sql += QString::number(myW->getSession()->getCurrentGame()->getStartCash(),10) + ","; - sql += QString::number(myW->getSession()->getCurrentGame()->getStartSmallBlind(),10) + ","; - sql += QString::number(myW->getSession()->getCurrentGame()->getDealerPosition(),10); - for(it_c = currentHand->getSeatsList()->begin();it_c!=currentHand->getSeatsList()->end();it_c++) { - if((*it_c)->getMyActiveStatus()) { - sql += ",'" + QString::fromUtf8((*it_c)->getMyName().c_str()) +"'"; - } else { - sql += ",NULL"; + + + if(mySqliteLogDb->isOpen()) { + + QSqlQuery query(*mySqliteLogDb); + QString sql; + + // bei Beginn eines Games + if(handID == 1) { + sql = "INSERT INTO Game (GameID,Startmoney,StartSb,DealerPos"; + for(i=1;i<=MAX_NUMBER_OF_PLAYERS; i++) { + sql += ",Seat_" + QString::number(i,10); + } + sql += ") VALUES ("; + sql += QString::number(gameID,10) + ","; + sql += QString::number(myW->getSession()->getCurrentGame()->getStartCash(),10) + ","; + sql += QString::number(myW->getSession()->getCurrentGame()->getStartSmallBlind(),10) + ","; + sql += QString::number(myW->getSession()->getCurrentGame()->getDealerPosition(),10); + for(it_c = currentHand->getSeatsList()->begin();it_c!=currentHand->getSeatsList()->end();it_c++) { + if((*it_c)->getMyActiveStatus()) { + sql += ",'" + QString::fromUtf8((*it_c)->getMyName().c_str()) +"'"; + } else { + sql += ",NULL"; + } + } + sql += ")"; + if(!query.exec(sql)) { + QMessageBox::critical(0, tr("ERROR"),query.lastError().text().toUtf8().data(), QMessageBox::Cancel); + } } + + sql = "INSERT INTO Hand (HandID,GameID"; + for(i=1;i<=MAX_NUMBER_OF_PLAYERS; i++) { + sql += ",Seat_" + QString("%1").arg(i) + "_Cash"; + } + sql += ") VALUES ("; + sql += QString::number(handID,10); + sql += "," + QString::number(gameID,10); + for(it_c = currentHand->getSeatsList()->begin();it_c!=currentHand->getSeatsList()->end();it_c++) { + if((*it_c)->getMyActiveStatus()) { + sql += "," + QString::number((*it_c)->getMyCash()+(*it_c)->getMySet(),10); + } else { + sql += ",NULL"; + } + } + sql += ")"; + + if(!query.exec(sql)) { + QMessageBox::critical(0, tr("ERROR"),query.lastError().text().toUtf8().data(), QMessageBox::Cancel); + } + } - sql += ")"; - if(!query.exec(sql)) { - QMessageBox::critical(0, tr("ERROR"),query.lastError().text().toUtf8().data(), QMessageBox::Cancel); - } - } - - sql = "INSERT INTO Hand (HandID,GameID"; - for(i=1;i<=MAX_NUMBER_OF_PLAYERS; i++) { - sql += ",Seat_" + QString("%1").arg(i) + "_Cash"; - } - sql += ") VALUES ("; - sql += QString::number(handID,10); - sql += "," + QString::number(gameID,10); - for(it_c = currentHand->getSeatsList()->begin();it_c!=currentHand->getSeatsList()->end();it_c++) { - if((*it_c)->getMyActiveStatus()) { - sql += "," + QString::number((*it_c)->getMyCash()+(*it_c)->getMySet(),10); - } else { - sql += ",NULL"; - } - } - sql += ")"; - - if(!query.exec(sql)) { - QMessageBox::critical(0, tr("ERROR"),query.lastError().text().toUtf8().data(), QMessageBox::Cancel); - } - - } - //print cash only for active players - for(it_c=currentHand->getActivePlayerList()->begin(); it_c!=currentHand->getActivePlayerList()->end(); it_c++) { + //print cash only for active players + for(it_c=currentHand->getActivePlayerList()->begin(); it_c!=currentHand->getActivePlayerList()->end(); it_c++) { - logFileStreamString += "Seat " + QString::number((*it_c)->getMyID()+1,10) + ": " + QString::fromUtf8((*it_c)->getMyName().c_str()) + " ($" + QString::number((*it_c)->getMyCash()+(*it_c)->getMySet(),10)+")
"; + logFileStreamString += "Seat " + QString::number((*it_c)->getMyID()+1,10) + ": " + QString::fromUtf8((*it_c)->getMyName().c_str()) + " ($" + QString::number((*it_c)->getMyCash()+(*it_c)->getMySet(),10)+")
"; - } + } - } + } } void Log::logNewBlindsSetsMsg(int sbSet, int bbSet, QString sbName, QString bbName) { - // log blinds - logFileStreamString += "BLINDS: "; + // log blinds + logFileStreamString += "BLINDS: "; - logFileStreamString += sbName+" ($"+QString::number(sbSet,10)+"), "; - logFileStreamString += bbName+" ($"+QString::number(bbSet,10)+")"; + logFileStreamString += sbName+" ($"+QString::number(sbSet,10)+"), "; + logFileStreamString += bbName+" ($"+QString::number(bbSet,10)+")"; - myW->textBrowser_Log->append("getChatLogTextColor()+";\">"+sbName+" posts small blind ($"+QString::number(sbSet,10)+")"); - myW->textBrowser_Log->append("getChatLogTextColor()+";\">"+bbName+" posts big blind ($"+QString::number(bbSet,10)+")"); + myW->textBrowser_Log->append("getChatLogTextColor()+";\">"+sbName+" posts small blind ($"+QString::number(sbSet,10)+")"); + myW->textBrowser_Log->append("getChatLogTextColor()+";\">"+bbName+" posts big blind ($"+QString::number(bbSet,10)+")"); - PlayerListConstIterator it_c; - HandInterface *currentHand = myW->getSession()->getCurrentGame()->getCurrentHand(); - for(it_c=currentHand->getActivePlayerList()->begin(); it_c!=currentHand->getActivePlayerList()->end(); it_c++) { - if(currentHand->getActivePlayerList()->size() > 2) { - if((*it_c)->getMyButton() == BUTTON_DEALER) { + PlayerListConstIterator it_c; + HandInterface *currentHand = myW->getSession()->getCurrentGame()->getCurrentHand(); + for(it_c=currentHand->getActivePlayerList()->begin(); it_c!=currentHand->getActivePlayerList()->end(); it_c++) { + if(currentHand->getActivePlayerList()->size() > 2) { + if((*it_c)->getMyButton() == BUTTON_DEALER) { - logFileStreamString += "
" + QString::fromUtf8((*it_c)->getMyName().c_str()) + " starts as dealer."; - break; - } - } else { - if((*it_c)->getMyButton() == BUTTON_SMALL_BLIND) { + logFileStreamString += "
" + QString::fromUtf8((*it_c)->getMyName().c_str()) + " starts as dealer."; + break; + } + } else { + if((*it_c)->getMyButton() == BUTTON_SMALL_BLIND) { - logFileStreamString += "
" + QString::fromUtf8((*it_c)->getMyName().c_str()) + " starts as dealer."; - break; - } - } - } + logFileStreamString += "
" + QString::fromUtf8((*it_c)->getMyName().c_str()) + " starts as dealer."; + break; + } + } + } - logFileStreamString += "

PREFLOP"; - logFileStreamString += "
\n"; + logFileStreamString += "

PREFLOP"; + logFileStreamString += "
\n"; } void Log::logPlayerWinsMsg(QString playerName, int pot, bool main) { - if(main) { - myW->textBrowser_Log->append("getLogWinnerMainPotColor()+";\">"+playerName+" wins $"+QString::number(pot,10)+""); - } else { - myW->textBrowser_Log->append("getLogWinnerSidePotColor()+";\">"+playerName+" wins $"+QString::number(pot,10)+" (side pot)"); - } - - if(myConfig->readConfigInt("LogOnOff")) { + if(main) { + myW->textBrowser_Log->append("getLogWinnerMainPotColor()+";\">"+playerName+" wins $"+QString::number(pot,10)+""); + } else { + myW->textBrowser_Log->append("getLogWinnerSidePotColor()+";\">"+playerName+" wins $"+QString::number(pot,10)+" (side pot)"); + } + + if(myConfig->readConfigInt("LogOnOff")) { //if write logfiles is enabled - logFileStreamString += "
"+playerName+" wins $"+QString::number(pot,10); - if(!main) { - logFileStreamString += " (side pot)"; - } - logFileStreamString += "\n"; + logFileStreamString += "
"+playerName+" wins $"+QString::number(pot,10); + if(!main) { + logFileStreamString += " (side pot)"; + } + logFileStreamString += "\n"; - if(myConfig->readConfigInt("LogInterval") == 0) { - writeLogFileStream(logFileStreamString); - logFileStreamString = ""; - } - } + if(myConfig->readConfigInt("LogInterval") == 0) { + writeLogFileStream(logFileStreamString); + logFileStreamString = ""; + } + } } void Log::logPlayerSitsOut(QString playerName) { - myW->textBrowser_Log->append("getLogPlayerSitsOutColor()+";\">"+playerName+" sits out"); + myW->textBrowser_Log->append("getLogPlayerSitsOutColor()+";\">"+playerName+" sits out"); + + if(myConfig->readConfigInt("LogOnOff")) { - if(myConfig->readConfigInt("LogOnOff")) { + logFileStreamString += "
"+playerName+" sits out\n"; - logFileStreamString += "
"+playerName+" sits out\n"; - - if(myConfig->readConfigInt("LogInterval") == 0) { - writeLogFileStream(logFileStreamString); - logFileStreamString = ""; - } - } + if(myConfig->readConfigInt("LogInterval") == 0) { + writeLogFileStream(logFileStreamString); + logFileStreamString = ""; + } + } } void Log::logDealBoardCardsMsg(int roundID, int card1, int card2, int card3, int card4, int card5) { + + QString round; + + switch (roundID) { - QString round; + case 1: round = "Flop"; + myW->textBrowser_Log->append("getLogPlayerSitsOutColor()+";\">--- "+round+" --- "+"["+translateCardCode(card1).at(0)+translateCardCode(card1).at(1)+","+translateCardCode(card2).at(0)+translateCardCode(card2).at(1)+","+translateCardCode(card3).at(0)+translateCardCode(card3).at(1)+"]"); + break; + case 2: round = "Turn"; + myW->textBrowser_Log->append("getLogPlayerSitsOutColor()+";\">--- "+round+" --- "+"["+translateCardCode(card1).at(0)+translateCardCode(card1).at(1)+","+translateCardCode(card2).at(0)+translateCardCode(card2).at(1)+","+translateCardCode(card3).at(0)+translateCardCode(card3).at(1)+","+translateCardCode(card4).at(0)+translateCardCode(card4).at(1)+"]"); + break; + case 3: round = "River"; + myW->textBrowser_Log->append("getLogPlayerSitsOutColor()+";\">--- "+round+" --- "+"["+translateCardCode(card1).at(0)+translateCardCode(card1).at(1)+","+translateCardCode(card2).at(0)+translateCardCode(card2).at(1)+","+translateCardCode(card3).at(0)+translateCardCode(card3).at(1)+","+translateCardCode(card4).at(0)+translateCardCode(card4).at(1)+","+translateCardCode(card5).at(0)+translateCardCode(card5).at(1)+"]"); + break; + default: round = "ERROR"; + } - switch (roundID) { - - case 1: round = "Flop"; - myW->textBrowser_Log->append("getLogPlayerSitsOutColor()+";\">--- "+round+" --- "+"["+translateCardCode(card1).at(0)+translateCardCode(card1).at(1)+","+translateCardCode(card2).at(0)+translateCardCode(card2).at(1)+","+translateCardCode(card3).at(0)+translateCardCode(card3).at(1)+"]"); - break; - case 2: round = "Turn"; - myW->textBrowser_Log->append("getLogPlayerSitsOutColor()+";\">--- "+round+" --- "+"["+translateCardCode(card1).at(0)+translateCardCode(card1).at(1)+","+translateCardCode(card2).at(0)+translateCardCode(card2).at(1)+","+translateCardCode(card3).at(0)+translateCardCode(card3).at(1)+","+translateCardCode(card4).at(0)+translateCardCode(card4).at(1)+"]"); - break; - case 3: round = "River"; - myW->textBrowser_Log->append("getLogPlayerSitsOutColor()+";\">--- "+round+" --- "+"["+translateCardCode(card1).at(0)+translateCardCode(card1).at(1)+","+translateCardCode(card2).at(0)+translateCardCode(card2).at(1)+","+translateCardCode(card3).at(0)+translateCardCode(card3).at(1)+","+translateCardCode(card4).at(0)+translateCardCode(card4).at(1)+","+translateCardCode(card5).at(0)+translateCardCode(card5).at(1)+"]"); - break; - default: round = "ERROR"; - } - - if(myConfig->readConfigInt("LogOnOff")) { + if(myConfig->readConfigInt("LogOnOff")) { //if write logfiles is enabled - QString sql; - sql = "UPDATE Hand SET "; + QString sql; + sql = "UPDATE Hand SET "; - switch (roundID) { + switch (roundID) { + + case 1: round = "Flop"; + logFileStreamString += "
"+round.toUpper()+" [board cards "+translateCardCode(card1).at(0)+""+translateCardCode(card1).at(1)+","+translateCardCode(card2).at(0)+""+translateCardCode(card2).at(1)+","+translateCardCode(card3).at(0)+""+translateCardCode(card3).at(1)+"]"+"
\n"; + sql += "BoardCard_1 = " + QString::number(card1,10) + ","; + sql += "BoardCard_2 = " + QString::number(card2,10) + ","; + sql += "BoardCard_3 = " + QString::number(card3,10); + break; + case 2: round = "Turn"; + logFileStreamString += "
"+round.toUpper()+" [board cards "+translateCardCode(card1).at(0)+""+translateCardCode(card1).at(1)+","+translateCardCode(card2).at(0)+""+translateCardCode(card2).at(1)+","+translateCardCode(card3).at(0)+""+translateCardCode(card3).at(1)+","+translateCardCode(card4).at(0)+""+translateCardCode(card4).at(1)+"]"+"
\n"; + sql += "BoardCard_4 = " + QString::number(card4,10); + break; + case 3: round = "River"; + logFileStreamString += "
"+round.toUpper()+" [board cards "+translateCardCode(card1).at(0)+""+translateCardCode(card1).at(1)+","+translateCardCode(card2).at(0)+""+translateCardCode(card2).at(1)+","+translateCardCode(card3).at(0)+""+translateCardCode(card3).at(1)+","+translateCardCode(card4).at(0)+""+translateCardCode(card4).at(1)+","+translateCardCode(card5).at(0)+""+translateCardCode(card5).at(1)+"]"+"
\n"; + sql += "BoardCard_5 = " + QString::number(card5,10); + break; + default: round = "ERROR"; + } + if(myConfig->readConfigInt("LogInterval") == 0) { + writeLogFileStream(logFileStreamString); + logFileStreamString = ""; + } - case 1: round = "Flop"; - logFileStreamString += "
"+round.toUpper()+" [board cards "+translateCardCode(card1).at(0)+""+translateCardCode(card1).at(1)+","+translateCardCode(card2).at(0)+""+translateCardCode(card2).at(1)+","+translateCardCode(card3).at(0)+""+translateCardCode(card3).at(1)+"]"+"
\n"; - sql += "BoardCard_1 = " + QString::number(card1,10) + ","; - sql += "BoardCard_2 = " + QString::number(card2,10) + ","; - sql += "BoardCard_3 = " + QString::number(card3,10); - break; - case 2: round = "Turn"; - logFileStreamString += "
"+round.toUpper()+" [board cards "+translateCardCode(card1).at(0)+""+translateCardCode(card1).at(1)+","+translateCardCode(card2).at(0)+""+translateCardCode(card2).at(1)+","+translateCardCode(card3).at(0)+""+translateCardCode(card3).at(1)+","+translateCardCode(card4).at(0)+""+translateCardCode(card4).at(1)+"]"+"
\n"; - sql += "BoardCard_4 = " + QString::number(card4,10); - break; - case 3: round = "River"; - logFileStreamString += "
"+round.toUpper()+" [board cards "+translateCardCode(card1).at(0)+""+translateCardCode(card1).at(1)+","+translateCardCode(card2).at(0)+""+translateCardCode(card2).at(1)+","+translateCardCode(card3).at(0)+""+translateCardCode(card3).at(1)+","+translateCardCode(card4).at(0)+""+translateCardCode(card4).at(1)+","+translateCardCode(card5).at(0)+""+translateCardCode(card5).at(1)+"]"+"
\n"; - sql += "BoardCard_5 = " + QString::number(card5,10); - break; - default: round = "ERROR"; - } - if(myConfig->readConfigInt("LogInterval") == 0) { - writeLogFileStream(logFileStreamString); - logFileStreamString = ""; - } + sql += " WHERE "; + sql += "HandID = " + QString::number(myW->getSession()->getCurrentGame()->getCurrentHandID(),10) + " AND "; + sql += "GameID = " + QString::number(myW->getSession()->getCurrentGame()->getMyGameID(),10); - sql += " WHERE "; - sql += "HandID = " + QString::number(myW->getSession()->getCurrentGame()->getCurrentHandID(),10) + " AND "; - sql += "GameID = " + QString::number(myW->getSession()->getCurrentGame()->getMyGameID(),10); + if(roundID <= 3) { + if(mySqliteLogDb->isOpen()) { - if(roundID <= 3) { - if(mySqliteLogDb->isOpen()) { + QSqlQuery query(*mySqliteLogDb); + if(!query.exec(sql)) { + QMessageBox::critical(0, tr("ERROR"),query.lastError().text().toUtf8().data(), QMessageBox::Cancel); + } + + } - QSqlQuery query(*mySqliteLogDb); - if(!query.exec(sql)) { - QMessageBox::critical(0, tr("ERROR"),query.lastError().text().toUtf8().data(), QMessageBox::Cancel); } - } - - } - - } + } } void Log::logFlipHoleCardsMsg(QString playerName, int playerID, int card1, int card2, int cardsValueInt, QString showHas) { - if (cardsValueInt != -1) { + if (cardsValueInt != -1) { - QString tempHandName = determineHandName(cardsValueInt); + QString tempHandName = determineHandName(cardsValueInt); - myW->textBrowser_Log->append("getChatLogTextColor()+";\">"+playerName+" "+showHas+" \""+tempHandName+"\""); + myW->textBrowser_Log->append("getChatLogTextColor()+";\">"+playerName+" "+showHas+" \""+tempHandName+"\""); - if(myConfig->readConfigInt("LogOnOff")) { - //if write logfiles is enabled + if(myConfig->readConfigInt("LogOnOff")) { + //if write logfiles is enabled - logFileStreamString += playerName+" "+showHas+" [ "+translateCardCode(card1).at(0)+""+translateCardCode(card1).at(1)+","+translateCardCode(card2).at(0)+""+translateCardCode(card2).at(1)+"] - "+tempHandName+"
\n"; + logFileStreamString += playerName+" "+showHas+" [ "+translateCardCode(card1).at(0)+""+translateCardCode(card1).at(1)+","+translateCardCode(card2).at(0)+""+translateCardCode(card2).at(1)+"] - "+tempHandName+"
\n"; + + if(myConfig->readConfigInt("LogInterval") == 0) { + writeLogFileStream(logFileStreamString); + logFileStreamString = ""; + } - if(myConfig->readConfigInt("LogInterval") == 0) { - writeLogFileStream(logFileStreamString); - logFileStreamString = ""; + } + } + else { + myW->textBrowser_Log->append("getChatLogTextColor()+";\">"+playerName+" "+showHas+" ["+translateCardCode(card1).at(0)+translateCardCode(card1).at(1)+","+translateCardCode(card2).at(0)+translateCardCode(card2).at(1)+"]"); + + if(myConfig->readConfigInt("LogOnOff")) { + //if write logfiles is enabled + + logFileStreamString += playerName+" "+showHas+" ["+translateCardCode(card1).at(0)+""+translateCardCode(card1).at(1)+","+translateCardCode(card2).at(0)+""+translateCardCode(card2).at(1)+"]"+"
\n"; + if(myConfig->readConfigInt("LogInterval") == 0) { + writeLogFileStream(logFileStreamString); + logFileStreamString = ""; + } + } + } + + QString sql = "UPDATE Hand SET "; + sql += "Seat_" + QString::number(playerID+1,10) + "_Card_1 = " + QString::number(card1,10) + ","; + sql += "Seat_" + QString::number(playerID+1,10) + "_Card_2 = " + QString::number(card2,10); + sql += " WHERE "; + sql += "HandID = " + QString::number(myW->getSession()->getCurrentGame()->getCurrentHandID(),10) + " AND "; + sql += "GameID = " + QString::number(myW->getSession()->getCurrentGame()->getMyGameID(),10); + + if(mySqliteLogDb->isOpen()) { + + QSqlQuery query(*mySqliteLogDb); + if(!query.exec(sql)) { + QMessageBox::critical(0, tr("ERROR"),query.lastError().text().toUtf8().data(), QMessageBox::Cancel); } } - } - else { - myW->textBrowser_Log->append("getChatLogTextColor()+";\">"+playerName+" "+showHas+" ["+translateCardCode(card1).at(0)+translateCardCode(card1).at(1)+","+translateCardCode(card2).at(0)+translateCardCode(card2).at(1)+"]"); - - if(myConfig->readConfigInt("LogOnOff")) { - //if write logfiles is enabled - - logFileStreamString += playerName+" "+showHas+" ["+translateCardCode(card1).at(0)+""+translateCardCode(card1).at(1)+","+translateCardCode(card2).at(0)+""+translateCardCode(card2).at(1)+"]"+"
\n"; - if(myConfig->readConfigInt("LogInterval") == 0) { - writeLogFileStream(logFileStreamString); - logFileStreamString = ""; - } - } - } - - QString sql = "UPDATE Hand SET "; - sql += "Seat_" + QString::number(playerID+1,10) + "_Card_1 = " + QString::number(card1,10) + ","; - sql += "Seat_" + QString::number(playerID+1,10) + "_Card_2 = " + QString::number(card2,10); - sql += " WHERE "; - sql += "HandID = " + QString::number(myW->getSession()->getCurrentGame()->getCurrentHandID(),10) + " AND "; - sql += "GameID = " + QString::number(myW->getSession()->getCurrentGame()->getMyGameID(),10); - - if(mySqliteLogDb->isOpen()) { - - QSqlQuery query(*mySqliteLogDb); - if(!query.exec(sql)) { - QMessageBox::critical(0, tr("ERROR"),query.lastError().text().toUtf8().data(), QMessageBox::Cancel); - } - - } - + } void Log::logPlayerLeftMsg(QString playerName, int wasKicked) { - QString action; - if(wasKicked) action = "was kicked from"; - else action = "has left"; + QString action; + if(wasKicked) action = "was kicked from"; + else action = "has left"; - myW->textBrowser_Log->append( "getChatLogTextColor()+";\">"+playerName+" "+action+" the game!"); - - if(myConfig->readConfigInt("LogOnOff")) { + myW->textBrowser_Log->append( "getChatLogTextColor()+";\">"+playerName+" "+action+" the game!"); - logFileStreamString += ""+playerName+" "+action+" the game!
\n"; + if(myConfig->readConfigInt("LogOnOff")) { + + logFileStreamString += ""+playerName+" "+action+" the game!
\n"; - if(myConfig->readConfigInt("LogInterval") == 0) { - writeLogFileStream(logFileStreamString); - logFileStreamString = ""; - } - } + if(myConfig->readConfigInt("LogInterval") == 0) { + writeLogFileStream(logFileStreamString); + logFileStreamString = ""; + } + } } void Log::logNewGameAdminMsg(QString playerName) { - myW->textBrowser_Log->append( "getLogNewGameAdminColor()+";\">"+playerName+" is game admin now!"); - - if(myConfig->readConfigInt("LogOnOff")) { + myW->textBrowser_Log->append( "getLogNewGameAdminColor()+";\">"+playerName+" is game admin now!"); - logFileStreamString += ""+playerName+" is game admin now!
\n"; + if(myConfig->readConfigInt("LogOnOff")) { + + logFileStreamString += ""+playerName+" is game admin now!
\n"; - if(myConfig->readConfigInt("LogInterval") == 0) { - writeLogFileStream(logFileStreamString); - logFileStreamString = ""; - } - } + if(myConfig->readConfigInt("LogInterval") == 0) { + writeLogFileStream(logFileStreamString); + logFileStreamString = ""; + } + } } void Log::logPlayerWinGame(QString playerName, int gameID) { - myW->textBrowser_Log->append( ""+playerName+" wins game " + QString::number(gameID,10) +"!
"); - - if(myConfig->readConfigInt("LogOnOff")) { + myW->textBrowser_Log->append( ""+playerName+" wins game " + QString::number(gameID,10) +"!
"); - logFileStreamString += "

"+playerName+" wins game " + QString::number(gameID,10) +"!
\n"; + if(myConfig->readConfigInt("LogOnOff")) { + + logFileStreamString += "

"+playerName+" wins game " + QString::number(gameID,10) +"!
\n"; - if(myConfig->readConfigInt("LogInterval") == 0) { - writeLogFileStream(logFileStreamString); - logFileStreamString = ""; - } - } + if(myConfig->readConfigInt("LogInterval") == 0) { + writeLogFileStream(logFileStreamString); + logFileStreamString = ""; + } + } } QStringList Log::translateCardCode(int cardCode) { - int value = cardCode%13; - int color = cardCode/13; - - QStringList cardString; - - switch (value) { + int value = cardCode%13; + int color = cardCode/13; - case 0: cardString << "2"; - break; - case 1: cardString << "3"; - break; - case 2: cardString << "4"; - break; - case 3: cardString << "5"; - break; - case 4: cardString << "6"; - break; - case 5: cardString << "7"; - break; - case 6: cardString << "8"; - break; - case 7: cardString << "9"; - break; - case 8: cardString << "T"; - break; - case 9: cardString << "J"; - break; - case 10: cardString << "Q"; - break; - case 11: cardString << "K"; - break; - case 12: cardString << "A"; - break; - default: cardString << "ERROR"; - } - - switch (color) { + QStringList cardString; + + switch (value) { - case 0: cardString << "d"; - break; - case 1: cardString << "h"; - break; - case 2: cardString << "s"; - break; - case 3: cardString << "c"; - break; - default: cardString << "ERROR"; - } + case 0: cardString << "2"; + break; + case 1: cardString << "3"; + break; + case 2: cardString << "4"; + break; + case 3: cardString << "5"; + break; + case 4: cardString << "6"; + break; + case 5: cardString << "7"; + break; + case 6: cardString << "8"; + break; + case 7: cardString << "9"; + break; + case 8: cardString << "T"; + break; + case 9: cardString << "J"; + break; + case 10: cardString << "Q"; + break; + case 11: cardString << "K"; + break; + case 12: cardString << "A"; + break; + default: cardString << "ERROR"; + } - return cardString; + switch (color) { + + case 0: cardString << "d"; + break; + case 1: cardString << "h"; + break; + case 2: cardString << "s"; + break; + case 3: cardString << "c"; + break; + default: cardString << "ERROR"; + } + + return cardString; } QStringList Log::translateCardsValueCode(int cardsValueCode) { - QStringList cardString; + QStringList cardString; - //erste Ziffer : Blattname - int firstPart = cardsValueCode/100000000; - //zweite und dritte Ziffer : Kicker, highest Card, usw. - int secondPart = cardsValueCode/1000000 - firstPart*100; - //vierte und fünfte Ziffer - int thirdPart = cardsValueCode/10000 - firstPart*10000 - secondPart*100; - // usw - int fourthPart = cardsValueCode/100 - firstPart*1000000 - secondPart*10000 - thirdPart*100; - // - int fifthPart = cardsValueCode - firstPart*100000000 - secondPart*1000000 - thirdPart*10000 - fourthPart*100; - // fuer highest Card - int fifthPartA = cardsValueCode/10 - firstPart*10000000 - secondPart*100000 - thirdPart*1000 - fourthPart*10; - int fifthPartB = cardsValueCode - firstPart*100000000 - secondPart*1000000 - thirdPart*10000 - fourthPart*100 - fifthPartA*10; + //erste Ziffer : Blattname + int firstPart = cardsValueCode/100000000; + //zweite und dritte Ziffer : Kicker, highest Card, usw. + int secondPart = cardsValueCode/1000000 - firstPart*100; + //vierte und fünfte Ziffer + int thirdPart = cardsValueCode/10000 - firstPart*10000 - secondPart*100; + // usw + int fourthPart = cardsValueCode/100 - firstPart*1000000 - secondPart*10000 - thirdPart*100; + // + int fifthPart = cardsValueCode - firstPart*100000000 - secondPart*1000000 - thirdPart*10000 - fourthPart*100; + // fuer highest Card + int fifthPartA = cardsValueCode/10 - firstPart*10000000 - secondPart*100000 - thirdPart*1000 - fourthPart*10; + int fifthPartB = cardsValueCode - firstPart*100000000 - secondPart*1000000 - thirdPart*10000 - fourthPart*100 - fifthPartA*10; - switch (firstPart) { + switch (firstPart) { - // Royal Flush - case 9: cardString << "Royal Flush"; - break; - // Straight Flush - case 8: { - cardString << "Straight Flush, "; - switch(secondPart) { - case 11: cardString << "King high"; - break; - case 10: cardString << "Queen high"; - break; - case 9: cardString << "Jack high"; - break; - case 8: cardString << "Ten high"; - break; - case 7: cardString << "Nine high"; - break; - case 6: cardString << "Eight high"; - break; - case 5: cardString << "Seven high"; - break; - case 4: cardString << "Six high"; - break; - case 3: cardString << "Five high"; - break; - default: cardString << "ERROR"; - } - } - break; - // Four of a Kind - case 7: { - cardString << "Four of a Kind, "; - switch(secondPart) { - case 12: cardString << "Aces"; - break; - case 11: cardString << "Kings"; - break; - case 10: cardString << "Queens"; - break; - case 9: cardString << "Jacks"; - break; - case 8: cardString << "Tens"; - break; - case 7: cardString << "Nines"; - break; - case 6: cardString << "Eights"; - break; - case 5: cardString << "Sevens"; - break; - case 4: cardString << "Sixes"; - break; - case 3: cardString << "Fives"; - break; - case 2: cardString << "Fours"; - break; - case 1: cardString << "Threes"; - break; - case 0: cardString << "Deuces"; - break; - default: cardString << "ERROR"; - } - // Kicker - switch(thirdPart) { - case 12: cardString << "Ace"; - break; - case 11: cardString << "King"; - break; - case 10: cardString << "Queen"; - break; - case 9: cardString << "Jack"; - break; - case 8: cardString << "Ten"; - break; - case 7: cardString << "Nine"; - break; - case 6: cardString << "Eight"; - break; - case 5: cardString << "Seven"; - break; - case 4: cardString << "Six"; - break; - case 3: cardString << "Five"; - break; - case 2: cardString << "Four"; - break; - case 1: cardString << "Three"; - break; - case 0: cardString << "Deuce"; - break; - default: cardString << "ERROR"; - } - } - break; - // Full House - case 6: { - cardString << "Full House, "; - //Drilling - switch(secondPart) { - case 12: cardString << "Aces full of "; - break; - case 11: cardString << "Kings full of "; - break; - case 10: cardString << "Queens full of "; - break; - case 9: cardString << "Jacks full of "; - break; - case 8: cardString << "Tens full of "; - break; - case 7: cardString << "Nines full of "; - break; - case 6: cardString << "Eights full of "; - break; - case 5: cardString << "Sevens full of "; - break; - case 4: cardString << "Sixes full of "; - break; - case 3: cardString << "Fives full of "; - break; - case 2: cardString << "Fours full of "; - break; - case 1: cardString << "Threes full of "; - break; - case 0: cardString << "Deuces full of "; - break; - default: cardString << "ERROR"; - } - //Pärchen - switch(thirdPart) { - case 12: cardString << "Aces"; - break; - case 11: cardString << "Kings"; - break; - case 10: cardString << "Queens"; - break; - case 9: cardString << "Jacks"; - break; - case 8: cardString << "Tens"; - break; - case 7: cardString << "Nines"; - break; - case 6: cardString << "Eights"; - break; - case 5: cardString << "Sevens"; - break; - case 4: cardString << "Sixes"; - break; - case 3: cardString << "Fives"; - break; - case 2: cardString << "Fours"; - break; - case 1: cardString << "Threes"; - break; - case 0: cardString << "Deuces"; - break; - default: cardString << "ERROR"; - } - } - break; - // Flush - case 5: { - cardString << "Flush, "; - //highest Card - switch(secondPart) { - case 12: cardString << "Ace high"; - break; - case 11: cardString << "King high"; - break; - case 10: cardString << "Queen high"; - break; - case 9: cardString << "Jack high"; - break; - case 8: cardString << "Ten high"; - break; - case 7: cardString << "Nine high"; - break; - case 6: cardString << "Eight high"; - break; - case 5: cardString << "Seven high"; - break; - case 4: cardString << "Six high"; - break; - default: cardString << "ERROR"; - } - // Kicker 1 - switch(thirdPart) { - case 12: cardString << "Ace"; - break; - case 11: cardString << "King"; - break; - case 10: cardString << "Queen"; - break; - case 9: cardString << "Jack"; - break; - case 8: cardString << "Ten"; - break; - case 7: cardString << "Nine"; - break; - case 6: cardString << "Eight"; - break; - case 5: cardString << "Seven"; - break; - case 4: cardString << "Six"; - break; - case 3: cardString << "Five"; - break; - case 2: cardString << "Four"; - break; - case 1: cardString << "Three"; - break; - case 0: cardString << "Deuce"; - break; - default: cardString << "ERROR"; - } - //Kicker 2 - switch(fourthPart) { - case 12: cardString << "Ace"; - break; - case 11: cardString << "King"; - break; - case 10: cardString << "Queen"; - break; - case 9: cardString << "Jack"; - break; - case 8: cardString << "Ten"; - break; - case 7: cardString << "Nine"; - break; - case 6: cardString << "Eight"; - break; - case 5: cardString << "Seven"; - break; - case 4: cardString << "Six"; - break; - case 3: cardString << "Five"; - break; - case 2: cardString << "Four"; - break; - case 1: cardString << "Three"; - break; - case 0: cardString << "Deuce"; - break; - default: cardString << "ERROR"; - } - //Kicker 3 - switch(fifthPartA) { - case 9: cardString << "Jack"; - break; - case 8: cardString << "Ten"; - break; - case 7: cardString << "Nine"; - break; - case 6: cardString << "Eight"; - break; - case 5: cardString << "Seven"; - break; - case 4: cardString << "Six"; - break; - case 3: cardString << "Five"; - break; - case 2: cardString << "Four"; - break; - case 1: cardString << "Three"; - break; - case 0: cardString << "Deuce"; - break; - default: cardString << "ERROR"; - } - //Kicker 4 - switch(fifthPartB) { - case 9: cardString << "Jack"; - break; - case 8: cardString << "Ten"; - break; - case 7: cardString << "Nine"; - break; - case 6: cardString << "Eight"; - break; - case 5: cardString << "Seven"; - break; - case 4: cardString << "Six"; - break; - case 3: cardString << "Five"; - break; - case 2: cardString << "Four"; - break; - case 1: cardString << "Three"; - break; - case 0: cardString << "Deuce"; - break; - default: cardString << "ERROR"; - } - } - break; - // Straight - case 4: { - cardString << "Straight, "; - switch(secondPart) { - case 12: cardString << "Ace high"; - break; - case 11: cardString << "King high"; - break; - case 10: cardString << "Queen high"; - break; - case 9: cardString << "Jack high"; - break; - case 8: cardString << "Ten high"; - break; - case 7: cardString << "Nine high"; - break; - case 6: cardString << "Eight high"; - break; - case 5: cardString << "Seven high"; - break; - case 4: cardString << "Six high"; - break; - case 3: cardString << "Five high"; - break; - default: cardString << "ERROR"; - } - } - break; - // Three of a Kind - case 3: { - cardString << "Three of a Kind, "; - switch(secondPart) { - case 12: cardString << "Aces"; - break; - case 11: cardString << "Kings"; - break; - case 10: cardString << "Queens"; - break; - case 9: cardString << "Jacks"; - break; - case 8: cardString << "Tens"; - break; - case 7: cardString << "Nines"; - break; - case 6: cardString << "Eights"; - break; - case 5: cardString << "Sevens"; - break; - case 4: cardString << "Sixes"; - break; - case 3: cardString << "Fives"; - break; - case 2: cardString << "Fours"; - break; - case 1: cardString << "Threes"; - break; - case 0: cardString << "Deuces"; - break; - default: cardString << "ERROR"; - } - //Kicker 1 - switch(thirdPart) { - case 12: cardString << "Ace"; - break; - case 11: cardString << "King"; - break; - case 10: cardString << "Queen"; - break; - case 9: cardString << "Jack"; - break; - case 8: cardString << "Ten"; - break; - case 7: cardString << "Nine"; - break; - case 6: cardString << "Eight"; - break; - case 5: cardString << "Seven"; - break; - case 4: cardString << "Six"; - break; - case 3: cardString << "Five"; - break; - case 2: cardString << "Four"; - break; - case 1: cardString << "Three"; - break; - case 0: cardString << "Deuce"; - break; - default: cardString << "ERROR"; - } - //Kicker 2 - switch(fourthPart) { - case 12: cardString << "Ace"; - break; - case 11: cardString << "King"; - break; - case 10: cardString << "Queen"; - break; - case 9: cardString << "Jack"; - break; - case 8: cardString << "Ten"; - break; - case 7: cardString << "Nine"; - break; - case 6: cardString << "Eight"; - break; - case 5: cardString << "Seven"; - break; - case 4: cardString << "Six"; - break; - case 3: cardString << "Five"; - break; - case 2: cardString << "Four"; - break; - case 1: cardString << "Three"; - break; - case 0: cardString << "Deuce"; - break; - default: cardString << "ERROR"; - } - } - break; - // Two Pairs + // Royal Flush + case 9: cardString << "Royal Flush"; + break; + // Straight Flush + case 8: { + cardString << "Straight Flush, "; + switch(secondPart) { + case 11: cardString << "King high"; + break; + case 10: cardString << "Queen high"; + break; + case 9: cardString << "Jack high"; + break; + case 8: cardString << "Ten high"; + break; + case 7: cardString << "Nine high"; + break; + case 6: cardString << "Eight high"; + break; + case 5: cardString << "Seven high"; + break; + case 4: cardString << "Six high"; + break; + case 3: cardString << "Five high"; + break; + default: cardString << "ERROR"; + } + } + break; + // Four of a Kind + case 7: { + cardString << "Four of a Kind, "; + switch(secondPart) { + case 12: cardString << "Aces"; + break; + case 11: cardString << "Kings"; + break; + case 10: cardString << "Queens"; + break; + case 9: cardString << "Jacks"; + break; + case 8: cardString << "Tens"; + break; + case 7: cardString << "Nines"; + break; + case 6: cardString << "Eights"; + break; + case 5: cardString << "Sevens"; + break; + case 4: cardString << "Sixes"; + break; + case 3: cardString << "Fives"; + break; + case 2: cardString << "Fours"; + break; + case 1: cardString << "Threes"; + break; + case 0: cardString << "Deuces"; + break; + default: cardString << "ERROR"; + } + // Kicker + switch(thirdPart) { + case 12: cardString << "Ace"; + break; + case 11: cardString << "King"; + break; + case 10: cardString << "Queen"; + break; + case 9: cardString << "Jack"; + break; + case 8: cardString << "Ten"; + break; + case 7: cardString << "Nine"; + break; + case 6: cardString << "Eight"; + break; + case 5: cardString << "Seven"; + break; + case 4: cardString << "Six"; + break; + case 3: cardString << "Five"; + break; + case 2: cardString << "Four"; + break; + case 1: cardString << "Three"; + break; + case 0: cardString << "Deuce"; + break; + default: cardString << "ERROR"; + } + } + break; + // Full House + case 6: { + cardString << "Full House, "; + //Drilling + switch(secondPart) { + case 12: cardString << "Aces full of "; + break; + case 11: cardString << "Kings full of "; + break; + case 10: cardString << "Queens full of "; + break; + case 9: cardString << "Jacks full of "; + break; + case 8: cardString << "Tens full of "; + break; + case 7: cardString << "Nines full of "; + break; + case 6: cardString << "Eights full of "; + break; + case 5: cardString << "Sevens full of "; + break; + case 4: cardString << "Sixes full of "; + break; + case 3: cardString << "Fives full of "; + break; + case 2: cardString << "Fours full of "; + break; + case 1: cardString << "Threes full of "; + break; + case 0: cardString << "Deuces full of "; + break; + default: cardString << "ERROR"; + } + //Pärchen + switch(thirdPart) { + case 12: cardString << "Aces"; + break; + case 11: cardString << "Kings"; + break; + case 10: cardString << "Queens"; + break; + case 9: cardString << "Jacks"; + break; + case 8: cardString << "Tens"; + break; + case 7: cardString << "Nines"; + break; + case 6: cardString << "Eights"; + break; + case 5: cardString << "Sevens"; + break; + case 4: cardString << "Sixes"; + break; + case 3: cardString << "Fives"; + break; + case 2: cardString << "Fours"; + break; + case 1: cardString << "Threes"; + break; + case 0: cardString << "Deuces"; + break; + default: cardString << "ERROR"; + } + } + break; + // Flush + case 5: { + cardString << "Flush, "; + //highest Card + switch(secondPart) { + case 12: cardString << "Ace high"; + break; + case 11: cardString << "King high"; + break; + case 10: cardString << "Queen high"; + break; + case 9: cardString << "Jack high"; + break; + case 8: cardString << "Ten high"; + break; + case 7: cardString << "Nine high"; + break; + case 6: cardString << "Eight high"; + break; + case 5: cardString << "Seven high"; + break; + case 4: cardString << "Six high"; + break; + default: cardString << "ERROR"; + } + // Kicker 1 + switch(thirdPart) { + case 12: cardString << "Ace"; + break; + case 11: cardString << "King"; + break; + case 10: cardString << "Queen"; + break; + case 9: cardString << "Jack"; + break; + case 8: cardString << "Ten"; + break; + case 7: cardString << "Nine"; + break; + case 6: cardString << "Eight"; + break; + case 5: cardString << "Seven"; + break; + case 4: cardString << "Six"; + break; + case 3: cardString << "Five"; + break; + case 2: cardString << "Four"; + break; + case 1: cardString << "Three"; + break; + case 0: cardString << "Deuce"; + break; + default: cardString << "ERROR"; + } + //Kicker 2 + switch(fourthPart) { + case 12: cardString << "Ace"; + break; + case 11: cardString << "King"; + break; + case 10: cardString << "Queen"; + break; + case 9: cardString << "Jack"; + break; + case 8: cardString << "Ten"; + break; + case 7: cardString << "Nine"; + break; + case 6: cardString << "Eight"; + break; + case 5: cardString << "Seven"; + break; + case 4: cardString << "Six"; + break; + case 3: cardString << "Five"; + break; + case 2: cardString << "Four"; + break; + case 1: cardString << "Three"; + break; + case 0: cardString << "Deuce"; + break; + default: cardString << "ERROR"; + } + //Kicker 3 + switch(fifthPartA) { + case 9: cardString << "Jack"; + break; + case 8: cardString << "Ten"; + break; + case 7: cardString << "Nine"; + break; + case 6: cardString << "Eight"; + break; + case 5: cardString << "Seven"; + break; + case 4: cardString << "Six"; + break; + case 3: cardString << "Five"; + break; + case 2: cardString << "Four"; + break; + case 1: cardString << "Three"; + break; + case 0: cardString << "Deuce"; + break; + default: cardString << "ERROR"; + } + //Kicker 4 + switch(fifthPartB) { + case 9: cardString << "Jack"; + break; + case 8: cardString << "Ten"; + break; + case 7: cardString << "Nine"; + break; + case 6: cardString << "Eight"; + break; + case 5: cardString << "Seven"; + break; + case 4: cardString << "Six"; + break; + case 3: cardString << "Five"; + break; + case 2: cardString << "Four"; + break; + case 1: cardString << "Three"; + break; + case 0: cardString << "Deuce"; + break; + default: cardString << "ERROR"; + } + } + break; + // Straight + case 4: { + cardString << "Straight, "; + switch(secondPart) { + case 12: cardString << "Ace high"; + break; + case 11: cardString << "King high"; + break; + case 10: cardString << "Queen high"; + break; + case 9: cardString << "Jack high"; + break; + case 8: cardString << "Ten high"; + break; + case 7: cardString << "Nine high"; + break; + case 6: cardString << "Eight high"; + break; + case 5: cardString << "Seven high"; + break; + case 4: cardString << "Six high"; + break; + case 3: cardString << "Five high"; + break; + default: cardString << "ERROR"; + } + } + break; + // Three of a Kind + case 3: { + cardString << "Three of a Kind, "; + switch(secondPart) { + case 12: cardString << "Aces"; + break; + case 11: cardString << "Kings"; + break; + case 10: cardString << "Queens"; + break; + case 9: cardString << "Jacks"; + break; + case 8: cardString << "Tens"; + break; + case 7: cardString << "Nines"; + break; + case 6: cardString << "Eights"; + break; + case 5: cardString << "Sevens"; + break; + case 4: cardString << "Sixes"; + break; + case 3: cardString << "Fives"; + break; + case 2: cardString << "Fours"; + break; + case 1: cardString << "Threes"; + break; + case 0: cardString << "Deuces"; + break; + default: cardString << "ERROR"; + } + //Kicker 1 + switch(thirdPart) { + case 12: cardString << "Ace"; + break; + case 11: cardString << "King"; + break; + case 10: cardString << "Queen"; + break; + case 9: cardString << "Jack"; + break; + case 8: cardString << "Ten"; + break; + case 7: cardString << "Nine"; + break; + case 6: cardString << "Eight"; + break; + case 5: cardString << "Seven"; + break; + case 4: cardString << "Six"; + break; + case 3: cardString << "Five"; + break; + case 2: cardString << "Four"; + break; + case 1: cardString << "Three"; + break; + case 0: cardString << "Deuce"; + break; + default: cardString << "ERROR"; + } + //Kicker 2 + switch(fourthPart) { + case 12: cardString << "Ace"; + break; + case 11: cardString << "King"; + break; + case 10: cardString << "Queen"; + break; + case 9: cardString << "Jack"; + break; + case 8: cardString << "Ten"; + break; + case 7: cardString << "Nine"; + break; + case 6: cardString << "Eight"; + break; + case 5: cardString << "Seven"; + break; + case 4: cardString << "Six"; + break; + case 3: cardString << "Five"; + break; + case 2: cardString << "Four"; + break; + case 1: cardString << "Three"; + break; + case 0: cardString << "Deuce"; + break; + default: cardString << "ERROR"; + } + } + break; + // Two Pairs case 2: { cardString << "Two Pairs, "; // erster Pair switch(secondPart) { - case 12: cardString << "Aces and "; - break; - case 11: cardString << "Kings and "; - break; - case 10: cardString << "Queens and "; - break; - case 9: cardString << "Jacks and "; - break; - case 8: cardString << "Tens and "; - break; - case 7: cardString << "Nines and "; - break; - case 6: cardString << "Eights and "; - break; - case 5: cardString << "Sevens and "; - break; - case 4: cardString << "Sixes and "; - break; - case 3: cardString << "Fives and "; - break; - case 2: cardString << "Fours and "; - break; - case 1: cardString << "Threes and "; - break; - case 0: cardString << "Deuces and "; - break; - default: cardString << "ERROR"; + case 12: cardString << "Aces and "; + break; + case 11: cardString << "Kings and "; + break; + case 10: cardString << "Queens and "; + break; + case 9: cardString << "Jacks and "; + break; + case 8: cardString << "Tens and "; + break; + case 7: cardString << "Nines and "; + break; + case 6: cardString << "Eights and "; + break; + case 5: cardString << "Sevens and "; + break; + case 4: cardString << "Sixes and "; + break; + case 3: cardString << "Fives and "; + break; + case 2: cardString << "Fours and "; + break; + case 1: cardString << "Threes and "; + break; + case 0: cardString << "Deuces and "; + break; + default: cardString << "ERROR"; } // zweiter Pair switch(thirdPart) { - case 12: cardString << "Aces"; - break; - case 11: cardString << "Kings"; - break; - case 10: cardString << "Queens"; - break; - case 9: cardString << "Jacks"; - break; - case 8: cardString << "Tens"; - break; - case 7: cardString << "Nines"; - break; - case 6: cardString << "Eights"; - break; - case 5: cardString << "Sevens"; - break; - case 4: cardString << "Sixes"; - break; - case 3: cardString << "Fives"; - break; - case 2: cardString << "Fours"; - break; - case 1: cardString << "Threes"; - break; - case 0: cardString << "Deuces"; - break; - default: cardString << "ERROR"; + case 12: cardString << "Aces"; + break; + case 11: cardString << "Kings"; + break; + case 10: cardString << "Queens"; + break; + case 9: cardString << "Jacks"; + break; + case 8: cardString << "Tens"; + break; + case 7: cardString << "Nines"; + break; + case 6: cardString << "Eights"; + break; + case 5: cardString << "Sevens"; + break; + case 4: cardString << "Sixes"; + break; + case 3: cardString << "Fives"; + break; + case 2: cardString << "Fours"; + break; + case 1: cardString << "Threes"; + break; + case 0: cardString << "Deuces"; + break; + default: cardString << "ERROR"; } //Kicker switch(fourthPart) { - case 12: cardString << "Ace"; - break; - case 11: cardString << "King"; - break; - case 10: cardString << "Queen"; - break; - case 9: cardString << "Jack"; - break; - case 8: cardString << "Ten"; - break; - case 7: cardString << "Nine"; - break; - case 6: cardString << "Eight"; - break; - case 5: cardString << "Seven"; - break; - case 4: cardString << "Six"; - break; - case 3: cardString << "Five"; - break; - case 2: cardString << "Four"; - break; - case 1: cardString << "Three"; - break; - case 0: cardString << "Deuce"; - break; - default: cardString << "ERROR"; + case 12: cardString << "Ace"; + break; + case 11: cardString << "King"; + break; + case 10: cardString << "Queen"; + break; + case 9: cardString << "Jack"; + break; + case 8: cardString << "Ten"; + break; + case 7: cardString << "Nine"; + break; + case 6: cardString << "Eight"; + break; + case 5: cardString << "Seven"; + break; + case 4: cardString << "Six"; + break; + case 3: cardString << "Five"; + break; + case 2: cardString << "Four"; + break; + case 1: cardString << "Three"; + break; + case 0: cardString << "Deuce"; + break; + default: cardString << "ERROR"; } - } - break; - // One Pair + } + break; + // One Pair case 1: { cardString << "One Pair, "; // Pair switch(secondPart) { - case 12: cardString << "Aces"; - break; - case 11: cardString << "Kings"; - break; - case 10: cardString << "Queens"; - break; - case 9: cardString << "Jacks"; - break; - case 8: cardString << "Tens"; - break; - case 7: cardString << "Nines"; - break; - case 6: cardString << "Eights"; - break; - case 5: cardString << "Sevens"; - break; - case 4: cardString << "Sixes"; - break; - case 3: cardString << "Fives"; - break; - case 2: cardString << "Fours"; - break; - case 1: cardString << "Threes"; - break; - case 0: cardString << "Deuces"; - break; - default: cardString << "ERROR"; + case 12: cardString << "Aces"; + break; + case 11: cardString << "Kings"; + break; + case 10: cardString << "Queens"; + break; + case 9: cardString << "Jacks"; + break; + case 8: cardString << "Tens"; + break; + case 7: cardString << "Nines"; + break; + case 6: cardString << "Eights"; + break; + case 5: cardString << "Sevens"; + break; + case 4: cardString << "Sixes"; + break; + case 3: cardString << "Fives"; + break; + case 2: cardString << "Fours"; + break; + case 1: cardString << "Threes"; + break; + case 0: cardString << "Deuces"; + break; + default: cardString << "ERROR"; } // Kicker 1 switch(thirdPart) { - case 12: cardString << "Ace"; - break; - case 11: cardString << "King"; - break; - case 10: cardString << "Queen"; - break; - case 9: cardString << "Jack"; - break; - case 8: cardString << "Ten"; - break; - case 7: cardString << "Nine"; - break; - case 6: cardString << "Eight"; - break; - case 5: cardString << "Seven"; - break; - case 4: cardString << "Six"; - break; - case 3: cardString << "Five"; - break; - case 2: cardString << "Four"; - break; - case 1: cardString << "Three"; - break; - case 0: cardString << "Deuce"; - break; - default: cardString << "ERROR"; + case 12: cardString << "Ace"; + break; + case 11: cardString << "King"; + break; + case 10: cardString << "Queen"; + break; + case 9: cardString << "Jack"; + break; + case 8: cardString << "Ten"; + break; + case 7: cardString << "Nine"; + break; + case 6: cardString << "Eight"; + break; + case 5: cardString << "Seven"; + break; + case 4: cardString << "Six"; + break; + case 3: cardString << "Five"; + break; + case 2: cardString << "Four"; + break; + case 1: cardString << "Three"; + break; + case 0: cardString << "Deuce"; + break; + default: cardString << "ERROR"; } //Kicker 2 switch(fourthPart) { - case 12: cardString << "Ace"; - break; - case 11: cardString << "King"; - break; - case 10: cardString << "Queen"; - break; - case 9: cardString << "Jack"; - break; - case 8: cardString << "Ten"; - break; - case 7: cardString << "Nine"; - break; - case 6: cardString << "Eight"; - break; - case 5: cardString << "Seven"; - break; - case 4: cardString << "Six"; - break; - case 3: cardString << "Five"; - break; - case 2: cardString << "Four"; - break; - case 1: cardString << "Three"; - break; - case 0: cardString << "Deuce"; - break; - default: cardString << "ERROR"; + case 12: cardString << "Ace"; + break; + case 11: cardString << "King"; + break; + case 10: cardString << "Queen"; + break; + case 9: cardString << "Jack"; + break; + case 8: cardString << "Ten"; + break; + case 7: cardString << "Nine"; + break; + case 6: cardString << "Eight"; + break; + case 5: cardString << "Seven"; + break; + case 4: cardString << "Six"; + break; + case 3: cardString << "Five"; + break; + case 2: cardString << "Four"; + break; + case 1: cardString << "Three"; + break; + case 0: cardString << "Deuce"; + break; + default: cardString << "ERROR"; } //Kicker 3 switch(fifthPart) { - case 12: cardString << "Ace"; - break; - case 11: cardString << "King"; - break; - case 10: cardString << "Queen"; - break; - case 9: cardString << "Jack"; - break; - case 8: cardString << "Ten"; - break; - case 7: cardString << "Nine"; - break; - case 6: cardString << "Eight"; - break; - case 5: cardString << "Seven"; - break; - case 4: cardString << "Six"; - break; - case 3: cardString << "Five"; - break; - case 2: cardString << "Four"; - break; - case 1: cardString << "Three"; - break; - case 0: cardString << "Deuce"; - break; - default: cardString << "ERROR"; + case 12: cardString << "Ace"; + break; + case 11: cardString << "King"; + break; + case 10: cardString << "Queen"; + break; + case 9: cardString << "Jack"; + break; + case 8: cardString << "Ten"; + break; + case 7: cardString << "Nine"; + break; + case 6: cardString << "Eight"; + break; + case 5: cardString << "Seven"; + break; + case 4: cardString << "Six"; + break; + case 3: cardString << "Five"; + break; + case 2: cardString << "Four"; + break; + case 1: cardString << "Three"; + break; + case 0: cardString << "Deuce"; + break; + default: cardString << "ERROR"; } - } - break; - // Highest Card + } + break; + // Highest Card case 0: { cardString << "High Card, "; // Kicker 1 switch(secondPart) { - case 12: cardString << "Ace"; - break; - case 11: cardString << "King"; - break; - case 10: cardString << "Queen"; - break; - case 9: cardString << "Jack"; - break; - case 8: cardString << "Ten"; - break; - case 7: cardString << "Nine"; - break; - case 6: cardString << "Eight"; - break; - case 5: cardString << "Seven"; - break; - case 4: cardString << "Six"; - break; - case 3: cardString << "Five"; - break; - case 2: cardString << "Four"; - break; - case 1: cardString << "Three"; - break; - case 0: cardString << "Deuces"; - break; - default: cardString << "ERROR"; + case 12: cardString << "Ace"; + break; + case 11: cardString << "King"; + break; + case 10: cardString << "Queen"; + break; + case 9: cardString << "Jack"; + break; + case 8: cardString << "Ten"; + break; + case 7: cardString << "Nine"; + break; + case 6: cardString << "Eight"; + break; + case 5: cardString << "Seven"; + break; + case 4: cardString << "Six"; + break; + case 3: cardString << "Five"; + break; + case 2: cardString << "Four"; + break; + case 1: cardString << "Three"; + break; + case 0: cardString << "Deuces"; + break; + default: cardString << "ERROR"; } // Kicker 2 switch(thirdPart) { - case 12: cardString << "Ace"; - break; - case 11: cardString << "King"; - break; - case 10: cardString << "Queen"; - break; - case 9: cardString << "Jack"; - break; - case 8: cardString << "Ten"; - break; - case 7: cardString << "Nine"; - break; - case 6: cardString << "Eight"; - break; - case 5: cardString << "Seven"; - break; - case 4: cardString << "Six"; - break; - case 3: cardString << "Five"; - break; - case 2: cardString << "Four"; - break; - case 1: cardString << "Three"; - break; - case 0: cardString << "Deuce"; - break; - default: cardString << "ERROR"; + case 12: cardString << "Ace"; + break; + case 11: cardString << "King"; + break; + case 10: cardString << "Queen"; + break; + case 9: cardString << "Jack"; + break; + case 8: cardString << "Ten"; + break; + case 7: cardString << "Nine"; + break; + case 6: cardString << "Eight"; + break; + case 5: cardString << "Seven"; + break; + case 4: cardString << "Six"; + break; + case 3: cardString << "Five"; + break; + case 2: cardString << "Four"; + break; + case 1: cardString << "Three"; + break; + case 0: cardString << "Deuce"; + break; + default: cardString << "ERROR"; } //Kicker 3 switch(fourthPart) { - case 12: cardString << "Ace"; - break; - case 11: cardString << "King"; - break; - case 10: cardString << "Queen"; - break; - case 9: cardString << "Jack"; - break; - case 8: cardString << "Ten"; - break; - case 7: cardString << "Nine"; - break; - case 6: cardString << "Eight"; - break; - case 5: cardString << "Seven"; - break; - case 4: cardString << "Six"; - break; - case 3: cardString << "Five"; - break; - case 2: cardString << "Four"; - break; - case 1: cardString << "Three"; - break; - case 0: cardString << "Deuce"; - break; - default: cardString << "ERROR"; + case 12: cardString << "Ace"; + break; + case 11: cardString << "King"; + break; + case 10: cardString << "Queen"; + break; + case 9: cardString << "Jack"; + break; + case 8: cardString << "Ten"; + break; + case 7: cardString << "Nine"; + break; + case 6: cardString << "Eight"; + break; + case 5: cardString << "Seven"; + break; + case 4: cardString << "Six"; + break; + case 3: cardString << "Five"; + break; + case 2: cardString << "Four"; + break; + case 1: cardString << "Three"; + break; + case 0: cardString << "Deuce"; + break; + default: cardString << "ERROR"; } //Kicker 4 switch(fifthPartA) { - case 9: cardString << "Jack"; - break; - case 8: cardString << "Ten"; - break; - case 7: cardString << "Nine"; - break; - case 6: cardString << "Eight"; - break; - case 5: cardString << "Seven"; - break; - case 4: cardString << "Six"; - break; - case 3: cardString << "Five"; - break; - case 2: cardString << "Four"; - break; - case 1: cardString << "Three"; - break; - case 0: cardString << "Deuce"; - break; - default: cardString << "ERROR"; + case 9: cardString << "Jack"; + break; + case 8: cardString << "Ten"; + break; + case 7: cardString << "Nine"; + break; + case 6: cardString << "Eight"; + break; + case 5: cardString << "Seven"; + break; + case 4: cardString << "Six"; + break; + case 3: cardString << "Five"; + break; + case 2: cardString << "Four"; + break; + case 1: cardString << "Three"; + break; + case 0: cardString << "Deuce"; + break; + default: cardString << "ERROR"; } //Kicker 5 switch(fifthPartB) { - case 9: cardString << "Jack"; - break; - case 8: cardString << "Ten"; - break; - case 7: cardString << "Nine"; - break; - case 6: cardString << "Eight"; - break; - case 5: cardString << "Seven"; - break; - case 4: cardString << "Six"; - break; - case 3: cardString << "Five"; - break; - case 2: cardString << "Four"; - break; - case 1: cardString << "Three"; - break; - case 0: cardString << "Deuce"; - break; - default: cardString << "ERROR"; + case 9: cardString << "Jack"; + break; + case 8: cardString << "Ten"; + break; + case 7: cardString << "Nine"; + break; + case 6: cardString << "Eight"; + break; + case 5: cardString << "Seven"; + break; + case 4: cardString << "Six"; + break; + case 3: cardString << "Five"; + break; + case 2: cardString << "Four"; + break; + case 1: cardString << "Three"; + break; + case 0: cardString << "Deuce"; + break; + default: cardString << "ERROR"; } - } - break; + } + break; default: cardString << "ERROR"; - } + } - return cardString; + return cardString; } QString Log::determineHandName(int myCardsValueInt) { - list shownCardsValueInt; - list sameHandCardsValueInt; - bool different = false; - bool equal = false; - HandInterface *currentHand = myW->getSession()->getCurrentGame()->getCurrentHand(); - PlayerListConstIterator it_c; + list shownCardsValueInt; + list sameHandCardsValueInt; + bool different = false; + bool equal = false; + HandInterface *currentHand = myW->getSession()->getCurrentGame()->getCurrentHand(); + PlayerListConstIterator it_c; - // collect cardsValueInt of all players who will show their cards - for(it_c=currentHand->getActivePlayerList()->begin(); it_c!=currentHand->getActivePlayerList()->end(); it_c++) { - if( (*it_c)->getMyAction() != PLAYER_ACTION_FOLD) { - shownCardsValueInt.push_back( (*it_c)->getMyCardsValueInt()); - } - } + // collect cardsValueInt of all players who will show their cards + for(it_c=currentHand->getActivePlayerList()->begin(); it_c!=currentHand->getActivePlayerList()->end(); it_c++) { + if( (*it_c)->getMyAction() != PLAYER_ACTION_FOLD) { + shownCardsValueInt.push_back( (*it_c)->getMyCardsValueInt()); + } + } - // erase own cardsValueInt - list::iterator it; - for(it = shownCardsValueInt.begin(); it != shownCardsValueInt.end(); it++) { - if((*it) == myCardsValueInt) { - shownCardsValueInt.erase(it); - break; - } - } + // erase own cardsValueInt + list::iterator it; + for(it = shownCardsValueInt.begin(); it != shownCardsValueInt.end(); it++) { + if((*it) == myCardsValueInt) { + shownCardsValueInt.erase(it); + break; + } + } - QString handName; + QString handName; - switch(myCardsValueInt/100000000) { - // Royal Flush - case 9: { - handName = translateCardsValueCode(myCardsValueInt).at(0); - } - break; - // Straight Flush - case 8: { - handName = translateCardsValueCode(myCardsValueInt).at(0)+translateCardsValueCode(myCardsValueInt).at(1); - } - break; - // Four of a kind - case 7: { + switch(myCardsValueInt/100000000) { + // Royal Flush + case 9: { + handName = translateCardsValueCode(myCardsValueInt).at(0); + } + break; + // Straight Flush + case 8: { + handName = translateCardsValueCode(myCardsValueInt).at(0)+translateCardsValueCode(myCardsValueInt).at(1); + } + break; + // Four of a kind + case 7: { - handName = translateCardsValueCode(myCardsValueInt).at(0)+translateCardsValueCode(myCardsValueInt).at(1); + handName = translateCardsValueCode(myCardsValueInt).at(0)+translateCardsValueCode(myCardsValueInt).at(1); - // same hand detection - for(it = shownCardsValueInt.begin(); it != shownCardsValueInt.end(); it++) { - if(((*it)/1000000) == (myCardsValueInt/1000000)) { - sameHandCardsValueInt.push_back(*it); - } - } + // same hand detection + for(it = shownCardsValueInt.begin(); it != shownCardsValueInt.end(); it++) { + if(((*it)/1000000) == (myCardsValueInt/1000000)) { + sameHandCardsValueInt.push_back(*it); + } + } - // 1.same hands existing - if(!(sameHandCardsValueInt.empty())) { - // first kicker? - for(it = sameHandCardsValueInt.begin(); it != sameHandCardsValueInt.end(); ) { - if(((*it)/10000) == (myCardsValueInt/10000)) { - equal = true; - it++; - } else { - different = true; - it = sameHandCardsValueInt.erase(it); - } - } - if(different) { - handName += ", fifth card " + translateCardsValueCode(myCardsValueInt).at(2); - } + // 1.same hands existing + if(!(sameHandCardsValueInt.empty())) { + // first kicker? + for(it = sameHandCardsValueInt.begin(); it != sameHandCardsValueInt.end(); ) { + if(((*it)/10000) == (myCardsValueInt/10000)) { + equal = true; + it++; + } else { + different = true; + it = sameHandCardsValueInt.erase(it); + } + } + if(different) { + handName += ", fifth card " + translateCardsValueCode(myCardsValueInt).at(2); + } - } + } - } - break; - // Full House - case 6: { - handName = translateCardsValueCode(myCardsValueInt).at(0)+translateCardsValueCode(myCardsValueInt).at(1)+translateCardsValueCode(myCardsValueInt).at(2); - } - break; - // Flush - case 5: { + } + break; + // Full House + case 6: { + handName = translateCardsValueCode(myCardsValueInt).at(0)+translateCardsValueCode(myCardsValueInt).at(1)+translateCardsValueCode(myCardsValueInt).at(2); + } + break; + // Flush + case 5: { - handName = translateCardsValueCode(myCardsValueInt).at(0)+translateCardsValueCode(myCardsValueInt).at(1); + handName = translateCardsValueCode(myCardsValueInt).at(0)+translateCardsValueCode(myCardsValueInt).at(1); - // same hand detection - for(it = shownCardsValueInt.begin(); it != shownCardsValueInt.end(); it++) { - if(((*it)/1000000) == (myCardsValueInt/1000000)) { - sameHandCardsValueInt.push_back(*it); - } - } + // same hand detection + for(it = shownCardsValueInt.begin(); it != shownCardsValueInt.end(); it++) { + if(((*it)/1000000) == (myCardsValueInt/1000000)) { + sameHandCardsValueInt.push_back(*it); + } + } - // 1.same hands existing - if(!(sameHandCardsValueInt.empty())) { - // first kicker? - for(it = sameHandCardsValueInt.begin(); it != sameHandCardsValueInt.end(); ) { - if(((*it)/10000) == (myCardsValueInt/10000)) { - equal = true; - it++; - } else { - different = true; - it = sameHandCardsValueInt.erase(it); - } - } - if(different) { - handName += ", second card " + translateCardsValueCode(myCardsValueInt).at(2); - } - // 2.there are still same hands - if(equal) { - different = false; - equal = false; - // second kicker? - for(it = sameHandCardsValueInt.begin(); it != sameHandCardsValueInt.end(); ) { - if(((*it)/100) == (myCardsValueInt/100)) { - equal = true; - it++; - } else { - different = true; - it = sameHandCardsValueInt.erase(it); - } - } - if(different) { - handName += ", third card " + translateCardsValueCode(myCardsValueInt).at(3); - } - // 3.there are still same hands - if(equal) { - different = false; - equal = false; - // third kicker? - for(it = sameHandCardsValueInt.begin(); it != sameHandCardsValueInt.end(); ) { - if(((*it)/10) == (myCardsValueInt/10)) { - equal = true; - it++; - } else { - different = true; - it = sameHandCardsValueInt.erase(it); - } - } - if(different) { - handName += ", fourth card " + translateCardsValueCode(myCardsValueInt).at(4); - } - // 4.there are still same hands - if(equal) { - different = false; - equal = false; - // third kicker? - for(it = sameHandCardsValueInt.begin(); it != sameHandCardsValueInt.end(); ) { - if((*it) == myCardsValueInt) { - equal = true; - it++; - } else { - different = true; - it = sameHandCardsValueInt.erase(it); - } - } - if(different) { - handName += ", fifth card " + translateCardsValueCode(myCardsValueInt).at(5); - } - } - } - } - } + // 1.same hands existing + if(!(sameHandCardsValueInt.empty())) { + // first kicker? + for(it = sameHandCardsValueInt.begin(); it != sameHandCardsValueInt.end(); ) { + if(((*it)/10000) == (myCardsValueInt/10000)) { + equal = true; + it++; + } else { + different = true; + it = sameHandCardsValueInt.erase(it); + } + } + if(different) { + handName += ", second card " + translateCardsValueCode(myCardsValueInt).at(2); + } + // 2.there are still same hands + if(equal) { + different = false; + equal = false; + // second kicker? + for(it = sameHandCardsValueInt.begin(); it != sameHandCardsValueInt.end(); ) { + if(((*it)/100) == (myCardsValueInt/100)) { + equal = true; + it++; + } else { + different = true; + it = sameHandCardsValueInt.erase(it); + } + } + if(different) { + handName += ", third card " + translateCardsValueCode(myCardsValueInt).at(3); + } + // 3.there are still same hands + if(equal) { + different = false; + equal = false; + // third kicker? + for(it = sameHandCardsValueInt.begin(); it != sameHandCardsValueInt.end(); ) { + if(((*it)/10) == (myCardsValueInt/10)) { + equal = true; + it++; + } else { + different = true; + it = sameHandCardsValueInt.erase(it); + } + } + if(different) { + handName += ", fourth card " + translateCardsValueCode(myCardsValueInt).at(4); + } + // 4.there are still same hands + if(equal) { + different = false; + equal = false; + // third kicker? + for(it = sameHandCardsValueInt.begin(); it != sameHandCardsValueInt.end(); ) { + if((*it) == myCardsValueInt) { + equal = true; + it++; + } else { + different = true; + it = sameHandCardsValueInt.erase(it); + } + } + if(different) { + handName += ", fifth card " + translateCardsValueCode(myCardsValueInt).at(5); + } + } + } + } + } - } - break; - // Straight - case 4: { - handName = translateCardsValueCode(myCardsValueInt).at(0)+translateCardsValueCode(myCardsValueInt).at(1); - } - break; - // Three of a kind - case 3: { - handName = translateCardsValueCode(myCardsValueInt).at(0)+translateCardsValueCode(myCardsValueInt).at(1); + } + break; + // Straight + case 4: { + handName = translateCardsValueCode(myCardsValueInt).at(0)+translateCardsValueCode(myCardsValueInt).at(1); + } + break; + // Three of a kind + case 3: { + handName = translateCardsValueCode(myCardsValueInt).at(0)+translateCardsValueCode(myCardsValueInt).at(1); - // same hand detection - for(it = shownCardsValueInt.begin(); it != shownCardsValueInt.end(); it++) { - if(((*it)/1000000) == (myCardsValueInt/1000000)) { - sameHandCardsValueInt.push_back(*it); - } - } + // same hand detection + for(it = shownCardsValueInt.begin(); it != shownCardsValueInt.end(); it++) { + if(((*it)/1000000) == (myCardsValueInt/1000000)) { + sameHandCardsValueInt.push_back(*it); + } + } - // 1.same hands existing - if(!(sameHandCardsValueInt.empty())) { - // first kicker? - for(it = sameHandCardsValueInt.begin(); it != sameHandCardsValueInt.end(); ) { - if(((*it)/10000) == (myCardsValueInt/10000)) { - equal = true; - it++; - } else { - different = true; - it = sameHandCardsValueInt.erase(it); - } - } - if(different) { - handName += ", fourth card " + translateCardsValueCode(myCardsValueInt).at(2); - } - // 2.there are still same hands - if(equal) { - different = false; - equal = false; - // second kicker? - for(it = sameHandCardsValueInt.begin(); it != sameHandCardsValueInt.end(); ) { - if(((*it)/100) == (myCardsValueInt/100)) { - equal = true; - it++; - } else { - different = true; - it = sameHandCardsValueInt.erase(it); - } - } - if(different) { - handName += ", fifth card " + translateCardsValueCode(myCardsValueInt).at(3); - } - } - } + // 1.same hands existing + if(!(sameHandCardsValueInt.empty())) { + // first kicker? + for(it = sameHandCardsValueInt.begin(); it != sameHandCardsValueInt.end(); ) { + if(((*it)/10000) == (myCardsValueInt/10000)) { + equal = true; + it++; + } else { + different = true; + it = sameHandCardsValueInt.erase(it); + } + } + if(different) { + handName += ", fourth card " + translateCardsValueCode(myCardsValueInt).at(2); + } + // 2.there are still same hands + if(equal) { + different = false; + equal = false; + // second kicker? + for(it = sameHandCardsValueInt.begin(); it != sameHandCardsValueInt.end(); ) { + if(((*it)/100) == (myCardsValueInt/100)) { + equal = true; + it++; + } else { + different = true; + it = sameHandCardsValueInt.erase(it); + } + } + if(different) { + handName += ", fifth card " + translateCardsValueCode(myCardsValueInt).at(3); + } + } + } - } - break; - // Two Pairs - case 2: { + } + break; + // Two Pairs + case 2: { - handName = translateCardsValueCode(myCardsValueInt).at(0)+translateCardsValueCode(myCardsValueInt).at(1)+translateCardsValueCode(myCardsValueInt).at(2); + handName = translateCardsValueCode(myCardsValueInt).at(0)+translateCardsValueCode(myCardsValueInt).at(1)+translateCardsValueCode(myCardsValueInt).at(2); - // same hand detection - for(it = shownCardsValueInt.begin(); it != shownCardsValueInt.end(); it++) { - if(((*it)/10000) == (myCardsValueInt/10000)) { - sameHandCardsValueInt.push_back(*it); - } - } + // same hand detection + for(it = shownCardsValueInt.begin(); it != shownCardsValueInt.end(); it++) { + if(((*it)/10000) == (myCardsValueInt/10000)) { + sameHandCardsValueInt.push_back(*it); + } + } - // 1.same hands existing - if(!(sameHandCardsValueInt.empty())) { - // first kicker? - for(it = sameHandCardsValueInt.begin(); it != sameHandCardsValueInt.end(); ) { - if(((*it)/100) == (myCardsValueInt/100)) { - equal = true; - it++; - } else { - different = true; - it = sameHandCardsValueInt.erase(it); - } - } - if(different) { - handName += ", fifth card " + translateCardsValueCode(myCardsValueInt).at(3); - } + // 1.same hands existing + if(!(sameHandCardsValueInt.empty())) { + // first kicker? + for(it = sameHandCardsValueInt.begin(); it != sameHandCardsValueInt.end(); ) { + if(((*it)/100) == (myCardsValueInt/100)) { + equal = true; + it++; + } else { + different = true; + it = sameHandCardsValueInt.erase(it); + } + } + if(different) { + handName += ", fifth card " + translateCardsValueCode(myCardsValueInt).at(3); + } - } + } - } - break; - // Pair - case 1: { + } + break; + // Pair + case 1: { - handName = translateCardsValueCode(myCardsValueInt).at(0)+translateCardsValueCode(myCardsValueInt).at(1); + handName = translateCardsValueCode(myCardsValueInt).at(0)+translateCardsValueCode(myCardsValueInt).at(1); - // same hand detection - for(it = shownCardsValueInt.begin(); it != shownCardsValueInt.end(); it++) { - if(((*it)/1000000) == (myCardsValueInt/1000000)) { - sameHandCardsValueInt.push_back(*it); - } - } + // same hand detection + for(it = shownCardsValueInt.begin(); it != shownCardsValueInt.end(); it++) { + if(((*it)/1000000) == (myCardsValueInt/1000000)) { + sameHandCardsValueInt.push_back(*it); + } + } - // 1.same hands existing - if(!(sameHandCardsValueInt.empty())) { - // first kicker? - for(it = sameHandCardsValueInt.begin(); it != sameHandCardsValueInt.end(); ) { - if(((*it)/10000) == (myCardsValueInt/10000)) { - equal = true; - it++; - } else { - different = true; - it = sameHandCardsValueInt.erase(it); - } - } - if(different) { - handName += ", third card " + translateCardsValueCode(myCardsValueInt).at(2); - } - // 2.there are still same hands - if(equal) { - different = false; - equal = false; - // second kicker? - for(it = sameHandCardsValueInt.begin(); it != sameHandCardsValueInt.end(); ) { - if(((*it)/100) == (myCardsValueInt/100)) { - equal = true; - it++; - } else { - different = true; - it = sameHandCardsValueInt.erase(it); - } - } - if(different) { - handName += ", fourth card " + translateCardsValueCode(myCardsValueInt).at(3); - } - // 3.there are still same hands - if(equal) { - different = false; - equal = false; - // third kicker? - for(it = sameHandCardsValueInt.begin(); it != sameHandCardsValueInt.end(); ) { - if((*it) == myCardsValueInt) { - equal = true; - it++; - } else { - different = true; - it = sameHandCardsValueInt.erase(it); - } - } - if(different) { - handName += ", fifth card " + translateCardsValueCode(myCardsValueInt).at(4); - } - } - } - } + // 1.same hands existing + if(!(sameHandCardsValueInt.empty())) { + // first kicker? + for(it = sameHandCardsValueInt.begin(); it != sameHandCardsValueInt.end(); ) { + if(((*it)/10000) == (myCardsValueInt/10000)) { + equal = true; + it++; + } else { + different = true; + it = sameHandCardsValueInt.erase(it); + } + } + if(different) { + handName += ", third card " + translateCardsValueCode(myCardsValueInt).at(2); + } + // 2.there are still same hands + if(equal) { + different = false; + equal = false; + // second kicker? + for(it = sameHandCardsValueInt.begin(); it != sameHandCardsValueInt.end(); ) { + if(((*it)/100) == (myCardsValueInt/100)) { + equal = true; + it++; + } else { + different = true; + it = sameHandCardsValueInt.erase(it); + } + } + if(different) { + handName += ", fourth card " + translateCardsValueCode(myCardsValueInt).at(3); + } + // 3.there are still same hands + if(equal) { + different = false; + equal = false; + // third kicker? + for(it = sameHandCardsValueInt.begin(); it != sameHandCardsValueInt.end(); ) { + if((*it) == myCardsValueInt) { + equal = true; + it++; + } else { + different = true; + it = sameHandCardsValueInt.erase(it); + } + } + if(different) { + handName += ", fifth card " + translateCardsValueCode(myCardsValueInt).at(4); + } + } + } + } - } - break; - // highestCard - case 0: { + } + break; + // highestCard + case 0: { - handName = translateCardsValueCode(myCardsValueInt).at(0)+translateCardsValueCode(myCardsValueInt).at(1); + handName = translateCardsValueCode(myCardsValueInt).at(0)+translateCardsValueCode(myCardsValueInt).at(1); - // same hand detection - for(it = shownCardsValueInt.begin(); it != shownCardsValueInt.end(); it++) { - if(((*it)/1000000) == (myCardsValueInt/1000000)) { - sameHandCardsValueInt.push_back(*it); - } - } + // same hand detection + for(it = shownCardsValueInt.begin(); it != shownCardsValueInt.end(); it++) { + if(((*it)/1000000) == (myCardsValueInt/1000000)) { + sameHandCardsValueInt.push_back(*it); + } + } - // 1.same hands existing - if(!(sameHandCardsValueInt.empty())) { - // first kicker? - for(it = sameHandCardsValueInt.begin(); it != sameHandCardsValueInt.end(); ) { - if(((*it)/10000) == (myCardsValueInt/10000)) { - equal = true; - it++; - } else { - different = true; - it = sameHandCardsValueInt.erase(it); - } - } - if(different) { - handName += ", second card " + translateCardsValueCode(myCardsValueInt).at(2); - } - // 2.there are still same hands - if(equal) { - different = false; - equal = false; - // second kicker? - for(it = sameHandCardsValueInt.begin(); it != sameHandCardsValueInt.end(); ) { - if(((*it)/100) == (myCardsValueInt/100)) { - equal = true; - it++; - } else { - different = true; - it = sameHandCardsValueInt.erase(it); - } - } - if(different) { - handName += ", third card " + translateCardsValueCode(myCardsValueInt).at(3); - } - // 3.there are still same hands - if(equal) { - different = false; - equal = false; - // third kicker? - for(it = sameHandCardsValueInt.begin(); it != sameHandCardsValueInt.end(); ) { - if(((*it)/10) == (myCardsValueInt/10)) { - equal = true; - it++; - } else { - different = true; - it = sameHandCardsValueInt.erase(it); - } - } - if(different) { - handName += ", fourth card " + translateCardsValueCode(myCardsValueInt).at(4); - } - // 4.there are still same hands - if(equal) { - different = false; - equal = false; - // third kicker? - for(it = sameHandCardsValueInt.begin(); it != sameHandCardsValueInt.end(); ) { - if((*it) == myCardsValueInt) { - equal = true; - it++; - } else { - different = true; - it = sameHandCardsValueInt.erase(it); - } - } - if(different) { - handName += ", fifth card " + translateCardsValueCode(myCardsValueInt).at(5); - } - } - } - } - } + // 1.same hands existing + if(!(sameHandCardsValueInt.empty())) { + // first kicker? + for(it = sameHandCardsValueInt.begin(); it != sameHandCardsValueInt.end(); ) { + if(((*it)/10000) == (myCardsValueInt/10000)) { + equal = true; + it++; + } else { + different = true; + it = sameHandCardsValueInt.erase(it); + } + } + if(different) { + handName += ", second card " + translateCardsValueCode(myCardsValueInt).at(2); + } + // 2.there are still same hands + if(equal) { + different = false; + equal = false; + // second kicker? + for(it = sameHandCardsValueInt.begin(); it != sameHandCardsValueInt.end(); ) { + if(((*it)/100) == (myCardsValueInt/100)) { + equal = true; + it++; + } else { + different = true; + it = sameHandCardsValueInt.erase(it); + } + } + if(different) { + handName += ", third card " + translateCardsValueCode(myCardsValueInt).at(3); + } + // 3.there are still same hands + if(equal) { + different = false; + equal = false; + // third kicker? + for(it = sameHandCardsValueInt.begin(); it != sameHandCardsValueInt.end(); ) { + if(((*it)/10) == (myCardsValueInt/10)) { + equal = true; + it++; + } else { + different = true; + it = sameHandCardsValueInt.erase(it); + } + } + if(different) { + handName += ", fourth card " + translateCardsValueCode(myCardsValueInt).at(4); + } + // 4.there are still same hands + if(equal) { + different = false; + equal = false; + // third kicker? + for(it = sameHandCardsValueInt.begin(); it != sameHandCardsValueInt.end(); ) { + if((*it) == myCardsValueInt) { + equal = true; + it++; + } else { + different = true; + it = sameHandCardsValueInt.erase(it); + } + } + if(different) { + handName += ", fifth card " + translateCardsValueCode(myCardsValueInt).at(5); + } + } + } + } + } - } - break; - default: {} - } + } + break; + default: {} + } - return handName; + return handName; } void Log::writeLogFileStream(QString streamString) { - if(myHtmlLogFile) { - if(myHtmlLogFile->open( QIODevice::ReadWrite )) { - QTextStream stream( myHtmlLogFile ); - stream.readAll(); - stream << streamString; - myHtmlLogFile->close(); - } - else { cout << "Could not open log-file to write log-messages!" << endl; } - } - else { cout << "Could not find log-file to write log-messages!" << endl; } + if(myHtmlLogFile) { + if(myHtmlLogFile->open( QIODevice::ReadWrite )) { + QTextStream stream( myHtmlLogFile ); + stream.readAll(); + stream << streamString; + myHtmlLogFile->close(); + } + else { cout << "Could not open log-file to write log-messages!" << endl; } + } + else { cout << "Could not find log-file to write log-messages!" << endl; } } void Log::flushLogAtHand() { - if(myConfig->readConfigInt("LogOnOff")) { - if(myConfig->readConfigInt("LogInterval") < 2) { - // write for log after every action and after every hand - writeLogFileStream(logFileStreamString); - logFileStreamString = ""; - } - } + if(myConfig->readConfigInt("LogOnOff")) { + if(myConfig->readConfigInt("LogInterval") < 2) { + // write for log after every action and after every hand + writeLogFileStream(logFileStreamString); + logFileStreamString = ""; + } + } } void Log::flushLogAtGame(int gameID) { if(myConfig->readConfigInt("LogOnOff")) { - // write for log after every game + // write for log after every game if(gameID > lastGameID) { writeLogFileStream(logFileStreamString); logFileStreamString = "";