2007-01-13 02:40:33 +00:00
/***************************************************************************
* Copyright (C) 2006 by FThauer FHammer *
* f.thauer@web.de *
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2 of the License, or *
* (at your option) any later version. *
* *
* This program is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
* GNU General Public License for more details. *
* *
* You should have received a copy of the GNU General Public License *
* along with this program; if not, write to the *
* Free Software Foundation, Inc., *
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
***************************************************************************/
2007-01-31 22:48:44 +00:00
#include "log.h"
2007-01-13 02:40:33 +00:00
#include "mainwindowimpl.h"
2007-05-11 12:01:13 +00:00
#include <handinterface.h>
#include <session.h>
#include <game.h>
2007-04-17 07:28:32 +00:00
#include <game_defs.h>
2007-01-13 02:40:33 +00:00
using namespace std ;
2007-05-16 01:08:01 +00:00
Log :: Log ( mainWindowImpl * w , ConfigFile * c ) : myW ( w ), myConfig ( c ), myLogDir ( 0 ), myLogFile ( 0 )
2007-01-13 02:40:33 +00:00
{
2007-01-31 22:48:44 +00:00
myW -> setLog ( this );
2007-09-27 09:15:39 +00:00
myAppDataPath = QString :: fromUtf8 ( myConfig -> readConfigString ( "AppDataDir" ). c_str ());
2007-05-18 23:16:54 +00:00
connect ( this , SIGNAL ( signalLogPlayerActionMsg ( QString , int , int )), this , SLOT ( logPlayerActionMsg ( QString , int , int )));
connect ( this , SIGNAL ( signalLogNewGameHandMsg ( int , int )), this , SLOT ( logNewGameHandMsg ( int , int )));
2007-10-03 19:27:37 +00:00
connect ( this , SIGNAL ( signalLogNewBlindsSetsMsg ( int , int , int , QString , QString )), this , SLOT ( logNewBlindsSetsMsg ( int , int , int , QString , QString )));
2007-10-01 09:16:54 +00:00
connect ( this , SIGNAL ( signalLogPlayerWinsMsg ( QString , int )), this , SLOT ( logPlayerWinsMsg ( QString , int )));
2007-05-26 19:28:34 +00:00
connect ( this , SIGNAL ( signalLogDealBoardCardsMsg ( int , int , int , int , int , int )), this , SLOT ( logDealBoardCardsMsg ( int , int , int , int , int , int )));
2007-06-07 18:41:11 +00:00
connect ( this , SIGNAL ( signalLogFlipHoleCardsMsg ( QString , int , int , int , QString )), this , SLOT ( logFlipHoleCardsMsg ( QString , int , int , int , QString )));
connect ( this , SIGNAL ( signalLogPlayerLeftMsg ( QString )), this , SLOT ( logPlayerLeftMsg ( QString )));
2007-06-11 20:13:20 +00:00
connect ( this , SIGNAL ( signalLogPlayerWinGame ( QString , int )), this , SLOT ( logPlayerWinGame ( QString , int )));
2007-06-04 07:43:44 +00:00
2007-05-18 23:16:54 +00:00
2007-05-15 23:34:03 +00:00
logFileStreamString = "" ;
lastGameID = 0 ;
2007-05-15 21:22:16 +00:00
if ( myConfig -> readConfigInt ( "LogOnOff" )) {
//if write logfiles is enabled
if ( myConfig -> readConfigString ( "LogDir" ) != "" && QDir :: QDir ( QString :: fromUtf8 ( myConfig -> readConfigString ( "LogDir" ). c_str ())). exists ()) {
myLogDir = new QDir ( QString :: fromUtf8 ( myConfig -> readConfigString ( "LogDir" ). c_str ()));
myLogFile = new QFile ( myLogDir -> absolutePath () + "/pokerth-log-" + QDateTime :: currentDateTime (). toString ( "yyyy-MM-dd_hh.mm.ss" ) + ".html" );
//Logo-Pixmap extrahieren
2007-09-27 09:15:39 +00:00
QPixmap :: QPixmap ( myAppDataPath + "gfx/gui/misc/logoChip3D.png" ). save ( myLogDir -> absolutePath () + "/logo.png" );
2007-05-15 21:22:16 +00:00
// myW->textBrowser_Log->append(myLogFile->fileName());
myLogFile -> open ( QIODevice :: WriteOnly );
QTextStream stream ( myLogFile );
stream << "<html> \n " ;
stream << "<head> \n " ;
stream << "<meta http-equiv= \" Content-Type \" content= \" text/html; charset=utf8 \" >" ;
stream << "</head> \n " ;
stream << "<body> \n " ;
stream << "<img src='logo.png'> \n " ;
2007-10-02 20:32:35 +00:00
stream << "<h3><b>Log-File for PokerTH 0.6 Session started on " + QDate :: currentDate (). toString ( "yyyy-MM-dd" ) + " at " + QTime :: currentTime (). toString ( "hh:mm:ss" ) + "</b></h3> \n " ;
2007-05-15 21:22:16 +00:00
// stream << "</body>\n";
// stream << "</html>\n";
myLogFile -> close ();
//Zu alte Dateien löschen!!!
int daysUntilWaste = myConfig -> readConfigInt ( "LogStoreDuration" );
int i ;
QStringList filters ( "pokerth-log*" );
QStringList logFileList = myLogDir -> entryList ( filters , QDir :: Files );
2007-04-11 22:01:49 +00:00
2007-05-15 21:22:16 +00:00
for ( i = 0 ; i < logFileList . count (); i ++ ) {
2007-02-08 18:49:36 +00:00
2007-05-15 21:22:16 +00:00
// cout << logFileList.at(i).toStdString() << endl;
QString dateString = logFileList . at ( i );
dateString . remove ( "pokerth-log-" );
dateString . remove ( 10 , 14 );
QDate dateOfFile ( QDate :: fromString ( dateString , Qt :: ISODate ));
QDate today ( QDate :: currentDate ());
// cout << dateOfFile.daysTo(today) << endl;
if ( dateOfFile . daysTo ( today ) > daysUntilWaste ) {
2007-04-11 22:01:49 +00:00
2007-05-15 21:22:16 +00:00
// cout << QString::QString(myLogDir->absolutePath()+"/"+logFileList.at(i)).toStdString() << endl;
QFile fileToDelete ( myLogDir -> absolutePath () + "/" + logFileList . at ( i ));
fileToDelete . remove ();
}
2007-04-11 22:01:49 +00:00
}
2007-02-08 18:49:36 +00:00
2007-05-15 21:22:16 +00:00
}
else { cout << "Log directory doesn't exists. Cannot create log files" ; }
}
2007-01-13 02:40:33 +00:00
}
2007-01-31 22:48:44 +00:00
Log ::~ Log ()
2007-01-13 02:40:33 +00:00
{
2007-04-21 20:42:50 +00:00
delete myConfig ;
myConfig = 0 ;
2007-01-13 02:40:33 +00:00
}
2007-05-18 23:16:54 +00:00
void Log :: logPlayerActionMsg ( QString msg , int action , int setValue ) {
2007-02-04 13:46:27 +00:00
2007-01-13 02:40:33 +00:00
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 += " sets " ;
break ;
case 6 : msg += " is all in with " ;
break ;
default : msg += "ERROR" ;
}
if ( action >= 3 ) { msg += QString :: number ( setValue , 10 ) + "$." ; }
myW -> textBrowser_Log -> append ( msg );
2007-05-15 21:22:16 +00:00
if ( myConfig -> readConfigInt ( "LogOnOff" )) {
//if write logfiles is enabled
2007-05-15 23:34:03 +00:00
logFileStreamString += msg + "</br> \n " ;
if ( myConfig -> readConfigInt ( "LogInterval" ) == 0 ) {
writeLogFileStream ( logFileStreamString );
logFileStreamString = "" ;
}
2007-05-15 21:22:16 +00:00
}
2007-01-13 02:40:33 +00:00
}
2007-02-04 13:46:27 +00:00
void Log :: logNewGameHandMsg ( int gameID , int handID ) {
2007-01-13 02:40:33 +00:00
2007-09-27 18:07:03 +00:00
// int i, j, k;
PlayerListConstIterator it_c ;
2007-09-27 09:15:39 +00:00
HandInterface * currentHand = myW -> getSession (). getCurrentGame () -> getCurrentHand ();
2007-01-13 02:40:33 +00:00
2007-02-08 01:28:58 +00:00
myW -> textBrowser_Log -> append ( "<b>## Game: " + QString :: number ( gameID , 10 ) + " | Hand: " + QString :: number ( handID , 10 ) + " ##</b>" );
2007-09-27 18:07:03 +00:00
2007-05-15 21:22:16 +00:00
if ( myConfig -> readConfigInt ( "LogOnOff" )) {
//if write logfiles is enabled
2007-05-15 23:34:03 +00:00
logFileStreamString += "<p><b>####################   Game: " + QString :: number ( gameID , 10 ) + " | Hand: " + QString :: number ( handID , 10 ) + "   ####################</b></br>" ;
2007-09-27 09:15:39 +00:00
logFileStreamString += "BLIND LEVEL: " + QString :: number ( currentHand -> getSmallBlind ()) + "$/" + QString :: number ( currentHand -> getSmallBlind () * 2 ) + "$</br>" ;
2007-05-15 23:34:03 +00:00
logFileStreamString += "CASH: " ;
2007-02-10 20:00:33 +00:00
//Aktive Spieler zählen
2007-09-27 18:07:03 +00:00
// int activePlayersCounter = 0;
// for (k=0; k<MAX_NUMBER_OF_PLAYERS; k++) {
// if (currentHand->getPlayerArray()[k]->getMyActiveStatus() == 1) activePlayersCounter++;
// }
int k = 0 ;
// if(currentHand->getActivePlayerList()->size() > 2) {
//
// for(i=0; i<currentHand->getStartQuantityPlayers(); i++) {
//
// if(currentHand->getPlayerArray()[i]->getMyActiveStatus()) {
// //print cash only for active players
//
//
// if(currentHand->getPlayerArray()[i]->getMyButton() == 1) {
// if(k==1) { logFileStreamString += ", "; }
// k=1;
// logFileStreamString += QString::fromUtf8(currentHand->getPlayerArray()[i]->getMyName().c_str())+" (Dealer): "+QString::number(currentHand->getPlayerArray()[i]->getMyCash(),10)+"$";
// }
// else {
// if(k==1) { logFileStreamString += ", "; }
// k=1;
// logFileStreamString += QString::fromUtf8(currentHand->getPlayerArray()[i]->getMyName().c_str())+": "+QString::number(currentHand->getPlayerArray()[i]->getMyCash()+currentHand->getPlayerArray()[i]->getMySet(),10)+"$";
// }
// }
// }
// }
// else {
// for(i=0; i<currentHand->getStartQuantityPlayers(); i++) {
// if(currentHand->getPlayerArray()[i]->getMyActiveStatus()) {
// //print cash only for active players
// if(currentHand->getPlayerArray()[i]->getMyButton() == 2) {
// if(k==1) { logFileStreamString += ", "; }
// k=1;
// logFileStreamString += QString::fromUtf8(currentHand->getPlayerArray()[i]->getMyName().c_str())+" (Dealer): "+QString::number(currentHand->getPlayerArray()[i]->getMyCash()+currentHand->getPlayerArray()[i]->getMySet(),10)+"$";
// }
// else {
// if(k==1) { logFileStreamString += ", "; }
// k=1;
// logFileStreamString += QString::fromUtf8(currentHand->getPlayerArray()[i]->getMyName().c_str())+": "+QString::number(currentHand->getPlayerArray()[i]->getMyCash()+currentHand->getPlayerArray()[i]->getMySet(),10)+"$";
// }
// }
// }
// }
//print cash only for active players
for ( it_c = currentHand -> getActivePlayerList () -> begin (); it_c != currentHand -> getActivePlayerList () -> end (); it_c ++ ) {
if ( currentHand -> getActivePlayerList () -> size () > 2 ) {
2007-05-15 21:22:16 +00:00
2007-09-27 18:07:03 +00:00
if (( * it_c ) -> getMyButton () == BUTTON_DEALER ) {
if ( k == 1 ) { logFileStreamString += ", " ; }
k = 1 ;
logFileStreamString += QString :: fromUtf8 (( * it_c ) -> getMyName (). c_str ()) + " (Dealer): " + QString :: number (( * it_c ) -> getMyCash (), 10 ) + "$" ;
}
else {
if ( k == 1 ) { logFileStreamString += ", " ; }
k = 1 ;
logFileStreamString += QString :: fromUtf8 (( * it_c ) -> getMyName (). c_str ()) + ": " + QString :: number (( * it_c ) -> getMyCash () + ( * it_c ) -> getMySet (), 10 ) + "$" ;
2007-05-15 21:22:16 +00:00
}
}
2007-09-27 18:07:03 +00:00
// heads up
else {
if (( * it_c ) -> getMyButton () == BUTTON_SMALL_BLIND ) {
if ( k == 1 ) { logFileStreamString += ", " ; }
k = 1 ;
logFileStreamString += QString :: fromUtf8 (( * it_c ) -> getMyName (). c_str ()) + " (Dealer): " + QString :: number (( * it_c ) -> getMyCash () + ( * it_c ) -> getMySet (), 10 ) + "$" ;
}
else {
if ( k == 1 ) { logFileStreamString += ", " ; }
k = 1 ;
logFileStreamString += QString :: fromUtf8 (( * it_c ) -> getMyName (). c_str ()) + ": " + QString :: number (( * it_c ) -> getMyCash () + ( * it_c ) -> getMySet (), 10 ) + "$" ;
2007-05-15 21:22:16 +00:00
}
}
}
2007-10-03 19:27:37 +00:00
/* // log blinds
2007-05-15 23:34:03 +00:00
logFileStreamString += "</br>BLINDS: ";
2007-09-27 18:07:03 +00:00
// for(i=0; i<MAX_NUMBER_OF_PLAYERS; i++) {
//
// j = 0;
// //Aktive Spieler zählen
// int activePlayersCounter = 0;
// for (k=0; k<MAX_NUMBER_OF_PLAYERS; k++) {
// if (currentHand->getPlayerArray()[k]->getMyAction() != 1 && currentHand->getPlayerArray()[k]->getMyActiveStatus() == 1) activePlayersCounter++;
// }
//
// switch (currentHand->getPlayerArray()[(i+currentHand->getDealerPosition()+j)%MAX_NUMBER_OF_PLAYERS]->getMyButton()) {
// case 2 : logFileStreamString += QString::fromUtf8(currentHand->getPlayerArray()[(i+currentHand->getDealerPosition()+j)%MAX_NUMBER_OF_PLAYERS]->getMyName().c_str())+" ("+QString::number(currentHand->getPlayerArray()[(i+currentHand->getDealerPosition()+j)%MAX_NUMBER_OF_PLAYERS]->getMySet(),10)+"$), ";
// break;
// case 3 : logFileStreamString += QString::fromUtf8(currentHand->getPlayerArray()[(i+currentHand->getDealerPosition()+j)%MAX_NUMBER_OF_PLAYERS]->getMyName().c_str())+" ("+QString::number(currentHand->getPlayerArray()[(i+currentHand->getDealerPosition()+j)%MAX_NUMBER_OF_PLAYERS]->getMySet(),10)+"$)";
// break;
// default :;
// }
// }
2007-09-28 00:16:34 +00:00
// for(it_c=currentHand->getActivePlayerList()->begin(); it_c!=currentHand->getActivePlayerList()->end(); it_c++) {
//
// switch ( (*it_c)->getMyButton() ) {
// case 2 : logFileStreamString += QString::fromUtf8((*it_c)->getMyName().c_str())+" ("+QString::number((*it_c)->getMySet(),10)+"$), ";
// break;
// case 3 : logFileStreamString += QString::fromUtf8((*it_c)->getMyName().c_str())+" ("+QString::number((*it_c)->getMySet(),10)+"$)";
// break;
// default : ;
// }
// }
2007-10-03 19:27:37 +00:00
cout << "SB: " << currentHand->getCurrentBeRo()->getSmallBlindPositionId() << endl;
cout << "BB: " << currentHand->getCurrentBeRo()->getBigBlindPositionId() << endl;
2007-09-28 00:16:34 +00:00
// smallBlind
it_c = currentHand->getActivePlayerIt(currentHand->getCurrentBeRo()->getSmallBlindPositionId());
if(it_c != currentHand->getActivePlayerList()->end()) {
logFileStreamString += QString::fromUtf8((*it_c)->getMyName().c_str())+" ("+QString::number((*it_c)->getMySet(),10)+"$), ";
2007-02-10 20:00:33 +00:00
}
2007-09-27 18:07:03 +00:00
2007-09-28 00:16:34 +00:00
// bigBlind
it_c = currentHand->getActivePlayerIt(currentHand->getCurrentBeRo()->getBigBlindPositionId());
if(it_c != currentHand->getActivePlayerList()->end()) {
logFileStreamString += QString::fromUtf8((*it_c)->getMyName().c_str())+" ("+QString::number((*it_c)->getMySet(),10)+"$)";
}
2007-09-27 18:07:03 +00:00
2007-05-15 21:22:16 +00:00
2007-10-03 19:27:37 +00:00
logFileStreamString += "</br></br><b>PREFLOP</b>";
logFileStreamString += "</br>\n";*/
/*
if(myConfig->readConfigInt("LogInterval") < 2) {
// write for log after every action and after every hand
writeLogFileStream(logFileStreamString);
logFileStreamString = "";
}
else {
// write for log after every game
if(gameID > lastGameID) {
writeLogFileStream(logFileStreamString);
logFileStreamString = "";
lastGameID = gameID;
}
}*/
}
}
void Log :: logNewBlindsSetsMsg ( int gameID , int sbSet , int bbSet , QString sbName , QString bbName ) {
// log blinds
logFileStreamString += "</br>BLINDS: " ;
/*
cout << "SB: " << sbName << endl;
cout << "BB: " << bbName << endl; */
// smallBlind
// it_c = currentHand->getActivePlayerIt(currentHand->getCurrentBeRo()->getSmallBlindPositionId());
// if(it_c != currentHand->getActivePlayerList()->end()) {
// logFileStreamString += QString::fromUtf8((*it_c)->getMyName().c_str())+" ("+QString::number((*it_c)->getMySet(),10)+"$), ";
// }*/
logFileStreamString += sbName + " (" + QString :: number ( sbSet , 10 ) + "$), " ;
// bigBlind
// it_c = currentHand->getActivePlayerIt(currentHand->getCurrentBeRo()->getBigBlindPositionId());
// if(it_c != currentHand->getActivePlayerList()->end()) {
// logFileStreamString += QString::fromUtf8((*it_c)->getMyName().c_str())+" ("+QString::number((*it_c)->getMySet(),10)+"$)";
// }
logFileStreamString += bbName + " (" + QString :: number ( bbSet , 10 ) + "$)" ;
2007-05-15 23:34:03 +00:00
logFileStreamString += "</br></br><b>PREFLOP</b>" ;
logFileStreamString += "</br> \n " ;
2007-10-03 19:27:37 +00:00
2007-05-15 21:22:16 +00:00
2007-05-15 23:34:03 +00:00
if ( myConfig -> readConfigInt ( "LogInterval" ) < 2 ) {
// write for log after every action and after every hand
writeLogFileStream ( logFileStreamString );
logFileStreamString = "" ;
}
else {
// write for log after every game
if ( gameID > lastGameID ) {
writeLogFileStream ( logFileStreamString );
logFileStreamString = "" ;
lastGameID = gameID ;
}
}
2007-02-04 23:58:50 +00:00
}
2007-10-01 09:16:54 +00:00
void Log :: logPlayerWinsMsg ( QString playerName , int pot ) {
2007-02-04 23:58:50 +00:00
2007-10-01 09:16:54 +00:00
// HandInterface *currentHand = myW->getSession().getCurrentGame()->getCurrentHand();
2007-09-27 18:07:03 +00:00
// myW->textBrowser_Log->append(QString::fromUtf8(currentHand->getPlayerArray()[playerID]->getMyName().c_str())+" wins "+QString::number(pot,10)+"$!!! ");
2007-10-01 09:16:54 +00:00
// PlayerListConstIterator playerConstIt = currentHand->getActivePlayerIt(playerID);
// assert( playerConstIt != currentHand->getActivePlayerList()->end() );
myW -> textBrowser_Log -> append ( playerName + " wins " + QString :: number ( pot , 10 ) + "$!!! " );
2007-05-15 21:22:16 +00:00
if ( myConfig -> readConfigInt ( "LogOnOff" )) {
//if write logfiles is enabled
2007-05-15 23:34:03 +00:00
2007-05-15 21:22:16 +00:00
// if (cardsValueInt != -1) {
// myW->textBrowser_Log->append(QString::fromUtf8(currentHand->getPlayerArray()[playerID]->getMyName())+" wins "+QString::number(pot,10)+"$ with "+translateCardsValueCode(cardsValueInt).at(0)+"!!! ");
// stream << "</br><i>"+QString::fromUtf8(currentHand->getPlayerArray()[playerID]->getMyName())+" wins "+QString::number(pot,10)+"$!!!</i></p>\n";
// }
// else {
2007-05-15 23:34:03 +00:00
2007-09-27 18:07:03 +00:00
// logFileStreamString += "</br><i>"+QString::fromUtf8(currentHand->getPlayerArray()[playerID]->getMyName().c_str())+" wins "+QString::number(pot,10)+"$!!!</i></p>\n";
2007-10-01 09:16:54 +00:00
logFileStreamString += "</br><i>" + playerName + " wins " + QString :: number ( pot , 10 ) + "$!!!</i></p> \n " ;
2007-05-15 23:34:03 +00:00
if ( myConfig -> readConfigInt ( "LogInterval" ) == 0 ) {
writeLogFileStream ( logFileStreamString );
logFileStreamString = "" ;
}
2007-05-15 21:22:16 +00:00
}
2007-02-04 13:46:27 +00:00
}
2007-02-11 17:33:43 +00:00
2007-02-13 02:00:11 +00:00
void Log :: logDealBoardCardsMsg ( int roundID , int card1 , int card2 , int card3 , int card4 , int card5 ) {
2007-02-11 17:33:43 +00:00
QString round ;
2007-05-15 21:22:16 +00:00
2007-02-11 17:33:43 +00:00
switch ( roundID ) {
case 1 : round = "Flop" ;
2007-02-13 02:00:11 +00:00
myW -> textBrowser_Log -> append ( "--- " + 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 ) + "]" );
2007-02-11 17:33:43 +00:00
break ;
case 2 : round = "Turn" ;
2007-02-13 02:00:11 +00:00
myW -> textBrowser_Log -> append ( "--- " + 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 ) + "]" );
2007-02-11 17:33:43 +00:00
break ;
case 3 : round = "River" ;
2007-02-13 02:00:11 +00:00
myW -> textBrowser_Log -> append ( "--- " + 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 ) + "]" );
2007-02-11 17:33:43 +00:00
break ;
default : round = "ERROR" ;
}
2007-05-15 21:22:16 +00:00
if ( myConfig -> readConfigInt ( "LogOnOff" )) {
//if write logfiles is enabled
2007-05-15 23:34:03 +00:00
2007-05-15 21:22:16 +00:00
switch ( roundID ) {
case 1 : round = "Flop" ;
2007-05-15 23:34:03 +00:00
logFileStreamString += "</br><b>" + round . toUpper () + "</b> [board cards <b>" + translateCardCode ( card1 ). at ( 0 ) + "</b>" + translateCardCode ( card1 ). at ( 1 ) + ",<b>" + translateCardCode ( card2 ). at ( 0 ) + "</b>" + translateCardCode ( card2 ). at ( 1 ) + ",<b>" + translateCardCode ( card3 ). at ( 0 ) + "</b>" + translateCardCode ( card3 ). at ( 1 ) + "]" + "</br> \n " ;
2007-05-15 21:22:16 +00:00
break ;
case 2 : round = "Turn" ;
2007-05-15 23:34:03 +00:00
logFileStreamString += "</br><b>" + round . toUpper () + "</b> [board cards <b>" + translateCardCode ( card1 ). at ( 0 ) + "</b>" + translateCardCode ( card1 ). at ( 1 ) + ",<b>" + translateCardCode ( card2 ). at ( 0 ) + "</b>" + translateCardCode ( card2 ). at ( 1 ) + ",<b>" + translateCardCode ( card3 ). at ( 0 ) + "</b>" + translateCardCode ( card3 ). at ( 1 ) + ",<b>" + translateCardCode ( card4 ). at ( 0 ) + "</b>" + translateCardCode ( card4 ). at ( 1 ) + "]" + "</br> \n " ;
2007-05-15 21:22:16 +00:00
break ;
case 3 : round = "River" ;
2007-05-15 23:34:03 +00:00
logFileStreamString += "</br><b>" + round . toUpper () + "</b> [board cards <b>" + translateCardCode ( card1 ). at ( 0 ) + "</b>" + translateCardCode ( card1 ). at ( 1 ) + ",<b>" + translateCardCode ( card2 ). at ( 0 ) + "</b>" + translateCardCode ( card2 ). at ( 1 ) + ",<b>" + translateCardCode ( card3 ). at ( 0 ) + "</b>" + translateCardCode ( card3 ). at ( 1 ) + ",<b>" + translateCardCode ( card4 ). at ( 0 ) + "</b>" + translateCardCode ( card4 ). at ( 1 ) + ",<b>" + translateCardCode ( card5 ). at ( 0 ) + "</b>" + translateCardCode ( card5 ). at ( 1 ) + "]" + "</br> \n " ;
2007-05-15 21:22:16 +00:00
break ;
default : round = "ERROR" ;
}
2007-05-15 23:34:03 +00:00
if ( myConfig -> readConfigInt ( "LogInterval" ) == 0 ) {
writeLogFileStream ( logFileStreamString );
logFileStreamString = "" ;
}
2007-05-15 21:22:16 +00:00
}
2007-02-13 02:00:11 +00:00
}
2007-06-07 18:41:11 +00:00
void Log :: logFlipHoleCardsMsg ( QString playerName , int card1 , int card2 , int cardsValueInt , QString showHas ) {
2007-02-13 02:00:11 +00:00
2007-02-14 23:24:17 +00:00
if ( cardsValueInt != - 1 ) {
2007-03-17 12:02:28 +00:00
2007-09-02 18:35:39 +00:00
QString tempHandName = determineHandName ( cardsValueInt );
2007-03-17 14:58:12 +00:00
2007-06-07 18:41:11 +00:00
myW -> textBrowser_Log -> append ( playerName + " " + showHas + " \" " + tempHandName + " \" " );
2007-03-17 14:58:12 +00:00
2007-05-15 21:22:16 +00:00
if ( myConfig -> readConfigInt ( "LogOnOff" )) {
//if write logfiles is enabled
2007-05-15 23:34:03 +00:00
2007-06-07 18:41:11 +00:00
logFileStreamString += playerName + " " + showHas + " [ <b>" + translateCardCode ( card1 ). at ( 0 ) + "</b>" + translateCardCode ( card1 ). at ( 1 ) + ",<b>" + translateCardCode ( card2 ). at ( 0 ) + "</b>" + translateCardCode ( card2 ). at ( 1 ) + "] - " + tempHandName + "</br> \n " ;
2007-05-15 23:34:03 +00:00
if ( myConfig -> readConfigInt ( "LogInterval" ) == 0 ) {
writeLogFileStream ( logFileStreamString );
logFileStreamString = "" ;
}
2007-05-15 21:22:16 +00:00
}
2007-02-14 23:24:17 +00:00
}
else {
2007-06-07 18:41:11 +00:00
myW -> textBrowser_Log -> append ( playerName + " " + showHas + " [" + translateCardCode ( card1 ). at ( 0 ) + translateCardCode ( card1 ). at ( 1 ) + "," + translateCardCode ( card2 ). at ( 0 ) + translateCardCode ( card2 ). at ( 1 ) + "]" );
2007-05-15 21:22:16 +00:00
if ( myConfig -> readConfigInt ( "LogOnOff" )) {
//if write logfiles is enabled
2007-05-15 23:34:03 +00:00
2007-06-07 18:41:11 +00:00
logFileStreamString += playerName + " " + showHas + " [<b>" + translateCardCode ( card1 ). at ( 0 ) + "</b>" + translateCardCode ( card1 ). at ( 1 ) + ",<b>" + translateCardCode ( card2 ). at ( 0 ) + "</b>" + translateCardCode ( card2 ). at ( 1 ) + "]" + "</br> \n " ;
2007-05-15 23:34:03 +00:00
if ( myConfig -> readConfigInt ( "LogInterval" ) == 0 ) {
writeLogFileStream ( logFileStreamString );
logFileStreamString = "" ;
}
2007-05-15 21:22:16 +00:00
}
2007-02-14 23:24:17 +00:00
}
2007-05-15 21:22:16 +00:00
2007-02-13 02:00:11 +00:00
}
2007-06-07 18:41:11 +00:00
void Log :: logPlayerLeftMsg ( QString playerName ) {
2007-06-04 07:43:44 +00:00
2007-06-07 18:41:11 +00:00
myW -> textBrowser_Log -> append ( "<i>" + playerName + " has left the game!</i>" );
2007-06-04 07:43:44 +00:00
if ( myConfig -> readConfigInt ( "LogOnOff" )) {
2007-06-07 18:41:11 +00:00
logFileStreamString += "<i>" + playerName + " has left the game!</i><br> \n " ;
2007-06-04 07:43:44 +00:00
if ( myConfig -> readConfigInt ( "LogInterval" ) == 0 ) {
writeLogFileStream ( logFileStreamString );
logFileStreamString = "" ;
}
}
}
2007-06-11 20:13:20 +00:00
void Log :: logPlayerWinGame ( QString playerName , int gameID ) {
2007-06-11 20:35:12 +00:00
myW -> textBrowser_Log -> append ( "<i><b>" + playerName + " wins game " + QString :: number ( gameID , 10 ) + "!</i></b>" );
2007-06-11 20:13:20 +00:00
if ( myConfig -> readConfigInt ( "LogOnOff" )) {
2007-06-11 20:35:12 +00:00
logFileStreamString += "<i><b>" + playerName + " wins game " + QString :: number ( gameID , 10 ) + "!</i></b><br> \n " ;
2007-06-11 20:13:20 +00:00
if ( myConfig -> readConfigInt ( "LogInterval" ) == 0 ) {
writeLogFileStream ( logFileStreamString );
logFileStreamString = "" ;
}
}
}
2007-06-04 07:43:44 +00:00
2007-02-13 02:00:11 +00:00
QStringList Log :: translateCardCode ( int cardCode ) {
int value = cardCode % 13 ;
int color = cardCode / 13 ;
QStringList cardString ;
switch ( value ) {
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 << "10" ;
break ;
case 9 : cardString << "J" ;
break ;
2007-02-14 01:09:31 +00:00
case 10 : cardString << "Q" ;
2007-02-13 02:00:11 +00:00
break ;
case 11 : cardString << "K" ;
break ;
case 12 : cardString << "A" ;
break ;
default : cardString << "ERROR" ;
}
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 ;
2007-02-11 17:33:43 +00:00
}
2007-02-14 01:09:31 +00:00
QStringList Log :: translateCardsValueCode ( int cardsValueCode ) {
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 ;
switch ( firstPart ) {
2007-09-03 14:42:49 +00:00
// Royal Flush
2007-02-14 01:09:31 +00:00
case 9 : cardString << "Royal Flush" ;
break ;
2007-09-03 14:42:49 +00:00
// Straight Flush
2007-02-14 01:09:31 +00:00
case 8 : {
2007-03-17 12:02:28 +00:00
cardString << "Straight Flush, " ;
2007-02-14 01:09:31 +00:00
switch ( secondPart ) {
2007-03-17 12:02:28 +00:00
case 11 : cardString << "King high" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 10 : cardString << "Queen high" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 9 : cardString << "Jack high" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 8 : cardString << "Ten high" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 7 : cardString << "Nine high" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 6 : cardString << "Eight high" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 5 : cardString << "Seven high" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 4 : cardString << "Six high" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 3 : cardString << "Five high" ;
2007-02-14 01:09:31 +00:00
break ;
default : cardString << "ERROR" ;
}
}
break ;
2007-09-03 14:42:49 +00:00
// Four of a Kind
2007-02-14 01:09:31 +00:00
case 7 : {
2007-03-17 12:02:28 +00:00
cardString << "Four of a Kind, " ;
2007-02-14 01:09:31 +00:00
switch ( secondPart ) {
2007-03-17 12:02:28 +00:00
case 12 : cardString << "Aces" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 11 : cardString << "Kings" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 10 : cardString << "Queens" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 9 : cardString << "Jacks" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 8 : cardString << "Tens" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 7 : cardString << "Nines" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 6 : cardString << "Eights" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 5 : cardString << "Sevens" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 4 : cardString << "Sixes" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 3 : cardString << "Fives" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 2 : cardString << "Fours" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 1 : cardString << "Threes" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 0 : cardString << "Deuces" ;
2007-02-14 01:09:31 +00:00
break ;
default : cardString << "ERROR" ;
}
2007-09-03 14:42:49 +00:00
// 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" ;
}
2007-02-14 01:09:31 +00:00
}
break ;
2007-09-03 14:42:49 +00:00
// Full House
2007-02-14 01:09:31 +00:00
case 6 : {
2007-03-17 12:02:28 +00:00
cardString << "Full House, " ;
2007-02-14 01:09:31 +00:00
//Drilling
switch ( secondPart ) {
2007-03-17 12:02:28 +00:00
case 12 : cardString << "Aces full of " ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 11 : cardString << "Kings full of " ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 10 : cardString << "Queens full of " ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 9 : cardString << "Jacks full of " ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 8 : cardString << "Tens full of " ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 7 : cardString << "Nines full of " ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 6 : cardString << "Eights full of " ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 5 : cardString << "Sevens full of " ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 4 : cardString << "Sixes full of " ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 3 : cardString << "Fives full of " ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 2 : cardString << "Fours full of " ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 1 : cardString << "Threes full of " ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 0 : cardString << "Deuces full of " ;
2007-02-14 01:09:31 +00:00
break ;
default : cardString << "ERROR" ;
}
//Pärchen
switch ( thirdPart ) {
2007-03-17 12:02:28 +00:00
case 12 : cardString << "Aces" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 11 : cardString << "Kings" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 10 : cardString << "Queens" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 9 : cardString << "Jacks" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 8 : cardString << "Tens" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 7 : cardString << "Nines" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 6 : cardString << "Eights" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 5 : cardString << "Sevens" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 4 : cardString << "Sixes" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 3 : cardString << "Fives" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 2 : cardString << "Fours" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 1 : cardString << "Threes" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 0 : cardString << "Deuces" ;
2007-02-14 01:09:31 +00:00
break ;
default : cardString << "ERROR" ;
}
}
break ;
2007-09-03 14:42:49 +00:00
// Flush
2007-02-14 01:09:31 +00:00
case 5 : {
2007-03-17 12:02:28 +00:00
cardString << "Flush, " ;
2007-02-14 01:09:31 +00:00
//highest Card
switch ( secondPart ) {
2007-03-17 12:02:28 +00:00
case 12 : cardString << "Ace high" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 11 : cardString << "King high" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 10 : cardString << "Queen high" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 9 : cardString << "Jack high" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 8 : cardString << "Ten high" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 7 : cardString << "Nine high" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 6 : cardString << "Eight high" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 5 : cardString << "Seven high" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 4 : cardString << "Six high" ;
2007-02-14 01:09:31 +00:00
break ;
default : cardString << "ERROR" ;
}
2007-09-03 14:42:49 +00:00
// 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" ;
}
2007-02-14 01:09:31 +00:00
}
break ;
2007-09-03 14:42:49 +00:00
// Straight
2007-02-14 01:09:31 +00:00
case 4 : {
2007-03-17 12:02:28 +00:00
cardString << "Straight, " ;
2007-02-14 01:09:31 +00:00
switch ( secondPart ) {
2007-03-17 12:02:28 +00:00
case 12 : cardString << "Ace high" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 11 : cardString << "King high" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 10 : cardString << "Queen high" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 9 : cardString << "Jack high" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 8 : cardString << "Ten high" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 7 : cardString << "Nine high" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 6 : cardString << "Eight high" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 5 : cardString << "Seven high" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 4 : cardString << "Six high" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 3 : cardString << "Five high" ;
2007-02-14 01:09:31 +00:00
break ;
default : cardString << "ERROR" ;
}
}
break ;
2007-09-03 14:42:49 +00:00
// Three of a Kind
2007-02-14 01:09:31 +00:00
case 3 : {
2007-03-17 12:02:28 +00:00
cardString << "Three of a Kind, " ;
2007-02-14 01:09:31 +00:00
switch ( secondPart ) {
2007-03-17 12:02:28 +00:00
case 12 : cardString << "Aces" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 11 : cardString << "Kings" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 10 : cardString << "Queens" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 9 : cardString << "Jacks" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 8 : cardString << "Tens" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 7 : cardString << "Nines" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 6 : cardString << "Eights" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 5 : cardString << "Sevens" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 4 : cardString << "Sixes" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 3 : cardString << "Fives" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 2 : cardString << "Fours" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 1 : cardString << "Threes" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 0 : cardString << "Deuces" ;
2007-02-14 01:09:31 +00:00
break ;
default : cardString << "ERROR" ;
}
//Kicker 1
switch ( thirdPart ) {
2007-09-03 14:42:49 +00:00
case 12 : cardString << "Ace" ;
2007-02-14 01:09:31 +00:00
break ;
2007-09-03 14:42:49 +00:00
case 11 : cardString << "King" ;
2007-02-14 01:09:31 +00:00
break ;
2007-09-03 14:42:49 +00:00
case 10 : cardString << "Queen" ;
2007-02-14 01:09:31 +00:00
break ;
2007-09-03 14:42:49 +00:00
case 9 : cardString << "Jack" ;
2007-02-14 01:09:31 +00:00
break ;
2007-09-03 14:42:49 +00:00
case 8 : cardString << "Ten" ;
2007-02-14 01:09:31 +00:00
break ;
2007-09-03 14:42:49 +00:00
case 7 : cardString << "Nine" ;
2007-02-14 01:09:31 +00:00
break ;
2007-09-03 14:42:49 +00:00
case 6 : cardString << "Eight" ;
2007-02-14 01:09:31 +00:00
break ;
2007-09-03 14:42:49 +00:00
case 5 : cardString << "Seven" ;
2007-02-14 01:09:31 +00:00
break ;
2007-09-03 14:42:49 +00:00
case 4 : cardString << "Six" ;
2007-02-14 01:09:31 +00:00
break ;
2007-09-03 14:42:49 +00:00
case 3 : cardString << "Five" ;
2007-02-14 01:09:31 +00:00
break ;
2007-09-03 14:42:49 +00:00
case 2 : cardString << "Four" ;
2007-02-14 01:09:31 +00:00
break ;
2007-09-03 14:42:49 +00:00
case 1 : cardString << "Three" ;
break ;
case 0 : cardString << "Deuce" ;
2007-02-14 01:09:31 +00:00
break ;
default : cardString << "ERROR" ;
}
//Kicker 2
switch ( fourthPart ) {
2007-09-03 14:42:49 +00:00
case 12 : cardString << "Ace" ;
2007-02-14 01:09:31 +00:00
break ;
2007-09-03 14:42:49 +00:00
case 11 : cardString << "King" ;
2007-02-14 01:09:31 +00:00
break ;
2007-09-03 14:42:49 +00:00
case 10 : cardString << "Queen" ;
2007-02-14 01:09:31 +00:00
break ;
2007-09-03 14:42:49 +00:00
case 9 : cardString << "Jack" ;
2007-02-14 01:09:31 +00:00
break ;
2007-09-03 14:42:49 +00:00
case 8 : cardString << "Ten" ;
2007-02-14 01:09:31 +00:00
break ;
2007-09-03 14:42:49 +00:00
case 7 : cardString << "Nine" ;
2007-02-14 01:09:31 +00:00
break ;
2007-09-03 14:42:49 +00:00
case 6 : cardString << "Eight" ;
2007-02-14 01:09:31 +00:00
break ;
2007-09-03 14:42:49 +00:00
case 5 : cardString << "Seven" ;
2007-02-14 01:09:31 +00:00
break ;
2007-09-03 14:42:49 +00:00
case 4 : cardString << "Six" ;
2007-02-14 01:09:31 +00:00
break ;
2007-09-03 14:42:49 +00:00
case 3 : cardString << "Five" ;
2007-02-14 01:09:31 +00:00
break ;
2007-09-03 14:42:49 +00:00
case 2 : cardString << "Four" ;
2007-02-14 01:09:31 +00:00
break ;
2007-09-03 14:42:49 +00:00
case 1 : cardString << "Three" ;
break ;
case 0 : cardString << "Deuce" ;
2007-02-14 01:09:31 +00:00
break ;
default : cardString << "ERROR" ;
}
}
break ;
2007-09-03 14:42:49 +00:00
// Two Pairs
2007-02-14 01:09:31 +00:00
case 2 : {
2007-03-17 12:02:28 +00:00
cardString << "Two Pairs, " ;
2007-02-14 01:09:31 +00:00
// erster Pair
switch ( secondPart ) {
2007-03-17 12:02:28 +00:00
case 12 : cardString << "Aces and " ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 11 : cardString << "Kings and " ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 10 : cardString << "Queens and " ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 9 : cardString << "Jacks and " ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 8 : cardString << "Tens and " ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 7 : cardString << "Nines and " ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 6 : cardString << "Eights and " ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 5 : cardString << "Sevens and " ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 4 : cardString << "Sixes and " ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 3 : cardString << "Fives and " ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 2 : cardString << "Fours and " ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 1 : cardString << "Threes and " ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 0 : cardString << "Deuces and " ;
2007-02-14 01:09:31 +00:00
break ;
default : cardString << "ERROR" ;
}
// zweiter Pair
switch ( thirdPart ) {
2007-03-17 12:02:28 +00:00
case 12 : cardString << "Aces" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 11 : cardString << "Kings" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 10 : cardString << "Queens" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 9 : cardString << "Jacks" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 8 : cardString << "Tens" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 7 : cardString << "Nines" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 6 : cardString << "Eights" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 5 : cardString << "Sevens" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 4 : cardString << "Sixes" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 3 : cardString << "Fives" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 2 : cardString << "Fours" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 1 : cardString << "Threes" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 0 : cardString << "Deuces" ;
2007-02-14 01:09:31 +00:00
break ;
default : cardString << "ERROR" ;
}
//Kicker
switch ( fourthPart ) {
2007-09-03 14:42:49 +00:00
case 12 : cardString << "Ace" ;
2007-02-14 01:09:31 +00:00
break ;
2007-09-03 14:42:49 +00:00
case 11 : cardString << "King" ;
2007-02-14 01:09:31 +00:00
break ;
2007-09-03 14:42:49 +00:00
case 10 : cardString << "Queen" ;
2007-02-14 01:09:31 +00:00
break ;
2007-09-03 14:42:49 +00:00
case 9 : cardString << "Jack" ;
2007-02-14 01:09:31 +00:00
break ;
2007-09-03 14:42:49 +00:00
case 8 : cardString << "Ten" ;
2007-02-14 01:09:31 +00:00
break ;
2007-09-03 14:42:49 +00:00
case 7 : cardString << "Nine" ;
2007-02-14 01:09:31 +00:00
break ;
2007-09-03 14:42:49 +00:00
case 6 : cardString << "Eight" ;
2007-02-14 01:09:31 +00:00
break ;
2007-09-03 14:42:49 +00:00
case 5 : cardString << "Seven" ;
2007-02-14 01:09:31 +00:00
break ;
2007-09-03 14:42:49 +00:00
case 4 : cardString << "Six" ;
2007-02-14 01:09:31 +00:00
break ;
2007-09-03 14:42:49 +00:00
case 3 : cardString << "Five" ;
2007-02-14 01:09:31 +00:00
break ;
2007-09-03 14:42:49 +00:00
case 2 : cardString << "Four" ;
2007-02-14 01:09:31 +00:00
break ;
2007-09-03 14:42:49 +00:00
case 1 : cardString << "Three" ;
break ;
case 0 : cardString << "Deuce" ;
2007-02-14 01:09:31 +00:00
break ;
default : cardString << "ERROR" ;
}
}
break ;
2007-09-03 14:42:49 +00:00
// Pair
2007-02-14 01:09:31 +00:00
case 1 : {
2007-09-27 20:36:02 +00:00
cardString << "One Pair, " ;
2007-02-14 01:09:31 +00:00
// Pair
switch ( secondPart ) {
2007-03-17 12:02:28 +00:00
case 12 : cardString << "Aces" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 11 : cardString << "Kings" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 10 : cardString << "Queens" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 9 : cardString << "Jacks" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 8 : cardString << "Tens" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 7 : cardString << "Nines" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 6 : cardString << "Eights" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 5 : cardString << "Sevens" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 4 : cardString << "Sixes" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 3 : cardString << "Fives" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 2 : cardString << "Fours" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 1 : cardString << "Threes" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 0 : cardString << "Deuces" ;
2007-02-14 01:09:31 +00:00
break ;
default : cardString << "ERROR" ;
}
// Kicker 1
switch ( thirdPart ) {
2007-09-03 14:42:49 +00:00
case 12 : cardString << "Ace" ;
2007-02-14 01:09:31 +00:00
break ;
2007-09-03 14:42:49 +00:00
case 11 : cardString << "King" ;
2007-02-14 01:09:31 +00:00
break ;
2007-09-03 14:42:49 +00:00
case 10 : cardString << "Queen" ;
2007-02-14 01:09:31 +00:00
break ;
2007-09-03 14:42:49 +00:00
case 9 : cardString << "Jack" ;
2007-02-14 01:09:31 +00:00
break ;
2007-09-03 14:42:49 +00:00
case 8 : cardString << "Ten" ;
2007-02-14 01:09:31 +00:00
break ;
2007-09-03 14:42:49 +00:00
case 7 : cardString << "Nine" ;
2007-02-14 01:09:31 +00:00
break ;
2007-09-03 14:42:49 +00:00
case 6 : cardString << "Eight" ;
2007-02-14 01:09:31 +00:00
break ;
2007-09-03 14:42:49 +00:00
case 5 : cardString << "Seven" ;
2007-02-14 01:09:31 +00:00
break ;
2007-09-03 14:42:49 +00:00
case 4 : cardString << "Six" ;
2007-02-14 01:09:31 +00:00
break ;
2007-09-03 14:42:49 +00:00
case 3 : cardString << "Five" ;
2007-02-14 01:09:31 +00:00
break ;
2007-09-03 14:42:49 +00:00
case 2 : cardString << "Four" ;
2007-02-14 01:09:31 +00:00
break ;
2007-09-03 14:42:49 +00:00
case 1 : cardString << "Three" ;
break ;
case 0 : cardString << "Deuce" ;
2007-02-14 01:09:31 +00:00
break ;
default : cardString << "ERROR" ;
}
//Kicker 2
switch ( fourthPart ) {
2007-09-03 14:42:49 +00:00
case 12 : cardString << "Ace" ;
2007-02-14 01:09:31 +00:00
break ;
2007-09-03 14:42:49 +00:00
case 11 : cardString << "King" ;
2007-02-14 01:09:31 +00:00
break ;
2007-09-03 14:42:49 +00:00
case 10 : cardString << "Queen" ;
2007-02-14 01:09:31 +00:00
break ;
2007-09-03 14:42:49 +00:00
case 9 : cardString << "Jack" ;
2007-02-14 01:09:31 +00:00
break ;
2007-09-03 14:42:49 +00:00
case 8 : cardString << "Ten" ;
2007-02-14 01:09:31 +00:00
break ;
2007-09-03 14:42:49 +00:00
case 7 : cardString << "Nine" ;
2007-02-14 01:09:31 +00:00
break ;
2007-09-03 14:42:49 +00:00
case 6 : cardString << "Eight" ;
2007-02-14 01:09:31 +00:00
break ;
2007-09-03 14:42:49 +00:00
case 5 : cardString << "Seven" ;
2007-02-14 01:09:31 +00:00
break ;
2007-09-03 14:42:49 +00:00
case 4 : cardString << "Six" ;
2007-02-14 01:09:31 +00:00
break ;
2007-09-03 14:42:49 +00:00
case 3 : cardString << "Five" ;
2007-02-14 01:09:31 +00:00
break ;
2007-09-03 14:42:49 +00:00
case 2 : cardString << "Four" ;
2007-02-14 01:09:31 +00:00
break ;
2007-09-03 14:42:49 +00:00
case 1 : cardString << "Three" ;
break ;
case 0 : cardString << "Deuce" ;
2007-02-14 01:09:31 +00:00
break ;
default : cardString << "ERROR" ;
}
//Kicker 3
switch ( fifthPart ) {
2007-09-03 14:42:49 +00:00
case 12 : cardString << "Ace" ;
2007-02-14 01:09:31 +00:00
break ;
2007-09-03 14:42:49 +00:00
case 11 : cardString << "King" ;
2007-02-14 01:09:31 +00:00
break ;
2007-09-03 14:42:49 +00:00
case 10 : cardString << "Queen" ;
2007-02-14 01:09:31 +00:00
break ;
2007-09-03 14:42:49 +00:00
case 9 : cardString << "Jack" ;
2007-02-14 01:09:31 +00:00
break ;
2007-09-03 14:42:49 +00:00
case 8 : cardString << "Ten" ;
2007-02-14 01:09:31 +00:00
break ;
2007-09-03 14:42:49 +00:00
case 7 : cardString << "Nine" ;
2007-02-14 01:09:31 +00:00
break ;
2007-09-03 14:42:49 +00:00
case 6 : cardString << "Eight" ;
2007-02-14 01:09:31 +00:00
break ;
2007-09-03 14:42:49 +00:00
case 5 : cardString << "Seven" ;
2007-02-14 01:09:31 +00:00
break ;
2007-09-03 14:42:49 +00:00
case 4 : cardString << "Six" ;
2007-02-14 01:09:31 +00:00
break ;
2007-09-03 14:42:49 +00:00
case 3 : cardString << "Five" ;
2007-02-14 01:09:31 +00:00
break ;
2007-09-03 14:42:49 +00:00
case 2 : cardString << "Four" ;
2007-02-14 01:09:31 +00:00
break ;
2007-09-03 14:42:49 +00:00
case 1 : cardString << "Three" ;
break ;
case 0 : cardString << "Deuce" ;
2007-02-14 01:09:31 +00:00
break ;
default : cardString << "ERROR" ;
}
}
break ;
2007-09-03 14:42:49 +00:00
// Highest Card
2007-02-14 01:09:31 +00:00
case 0 : {
2007-09-27 20:36:02 +00:00
cardString << "High Card, " ;
2007-02-14 01:09:31 +00:00
// Kicker 1
switch ( secondPart ) {
case 12 : cardString << "Ace" ;
break ;
case 11 : cardString << "King" ;
break ;
case 10 : cardString << "Queen" ;
break ;
case 9 : cardString << "Jack" ;
break ;
2007-03-17 12:02:28 +00:00
case 8 : cardString << "Ten" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 7 : cardString << "Nine" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 6 : cardString << "Eight" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 5 : cardString << "Seven" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 4 : cardString << "Six" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 3 : cardString << "Five" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 2 : cardString << "Four" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 1 : cardString << "Three" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 0 : cardString << "Deuces" ;
2007-02-14 01:09:31 +00:00
break ;
default : cardString << "ERROR" ;
}
// Kicker 2
switch ( thirdPart ) {
2007-09-03 13:56:31 +00:00
case 12 : cardString << "Ace" ;
2007-02-14 01:09:31 +00:00
break ;
2007-09-03 13:56:31 +00:00
case 11 : cardString << "King" ;
2007-02-14 01:09:31 +00:00
break ;
2007-09-03 13:56:31 +00:00
case 10 : cardString << "Queen" ;
2007-02-14 01:09:31 +00:00
break ;
2007-09-03 13:56:31 +00:00
case 9 : cardString << "Jack" ;
2007-02-14 01:09:31 +00:00
break ;
2007-09-03 13:56:31 +00:00
case 8 : cardString << "Ten" ;
2007-02-14 01:09:31 +00:00
break ;
2007-09-03 13:56:31 +00:00
case 7 : cardString << "Nine" ;
2007-02-14 01:09:31 +00:00
break ;
2007-09-03 13:56:31 +00:00
case 6 : cardString << "Eight" ;
2007-02-14 01:09:31 +00:00
break ;
2007-09-03 13:56:31 +00:00
case 5 : cardString << "Seven" ;
2007-02-14 01:09:31 +00:00
break ;
2007-09-03 13:56:31 +00:00
case 4 : cardString << "Six" ;
2007-02-14 01:09:31 +00:00
break ;
2007-09-03 13:56:31 +00:00
case 3 : cardString << "Five" ;
2007-02-14 01:09:31 +00:00
break ;
2007-09-03 13:56:31 +00:00
case 2 : cardString << "Four" ;
2007-02-14 01:09:31 +00:00
break ;
2007-09-03 13:56:31 +00:00
case 1 : cardString << "Three" ;
2007-02-14 01:09:31 +00:00
break ;
2007-09-03 14:42:49 +00:00
case 0 : cardString << "Deuce" ;
break ;
2007-02-14 01:09:31 +00:00
default : cardString << "ERROR" ;
}
//Kicker 3
switch ( fourthPart ) {
2007-09-03 13:56:31 +00:00
case 12 : cardString << "Ace" ;
2007-02-14 01:09:31 +00:00
break ;
2007-09-03 13:56:31 +00:00
case 11 : cardString << "King" ;
2007-02-14 01:09:31 +00:00
break ;
2007-09-03 13:56:31 +00:00
case 10 : cardString << "Queen" ;
2007-02-14 01:09:31 +00:00
break ;
2007-09-03 13:56:31 +00:00
case 9 : cardString << "Jack" ;
2007-02-14 01:09:31 +00:00
break ;
2007-09-03 13:56:31 +00:00
case 8 : cardString << "Ten" ;
2007-02-14 01:09:31 +00:00
break ;
2007-09-03 13:56:31 +00:00
case 7 : cardString << "Nine" ;
2007-02-14 01:09:31 +00:00
break ;
2007-09-03 13:56:31 +00:00
case 6 : cardString << "Eight" ;
2007-02-14 01:09:31 +00:00
break ;
2007-09-03 13:56:31 +00:00
case 5 : cardString << "Seven" ;
2007-02-14 01:09:31 +00:00
break ;
2007-09-03 13:56:31 +00:00
case 4 : cardString << "Six" ;
2007-02-14 01:09:31 +00:00
break ;
2007-09-03 13:56:31 +00:00
case 3 : cardString << "Five" ;
2007-02-14 01:09:31 +00:00
break ;
2007-09-03 13:56:31 +00:00
case 2 : cardString << "Four" ;
2007-02-14 01:09:31 +00:00
break ;
2007-09-03 13:56:31 +00:00
case 1 : cardString << "Three" ;
2007-02-14 01:09:31 +00:00
break ;
2007-09-03 14:42:49 +00:00
case 0 : cardString << "Deuce" ;
break ;
2007-02-14 01:09:31 +00:00
default : cardString << "ERROR" ;
}
//Kicker 4
switch ( fifthPartA ) {
2007-09-03 13:56:31 +00:00
case 9 : cardString << "Jack" ;
2007-02-14 01:09:31 +00:00
break ;
2007-09-03 13:56:31 +00:00
case 8 : cardString << "Ten" ;
2007-02-14 01:09:31 +00:00
break ;
2007-09-03 13:56:31 +00:00
case 7 : cardString << "Nine" ;
2007-02-14 01:09:31 +00:00
break ;
2007-09-03 13:56:31 +00:00
case 6 : cardString << "Eight" ;
2007-02-14 01:09:31 +00:00
break ;
2007-09-03 13:56:31 +00:00
case 5 : cardString << "Seven" ;
2007-02-14 01:09:31 +00:00
break ;
2007-09-03 13:56:31 +00:00
case 4 : cardString << "Six" ;
2007-02-14 01:09:31 +00:00
break ;
2007-09-03 13:56:31 +00:00
case 3 : cardString << "Five" ;
2007-02-14 01:09:31 +00:00
break ;
2007-09-03 13:56:31 +00:00
case 2 : cardString << "Four" ;
2007-02-14 01:09:31 +00:00
break ;
2007-09-03 13:56:31 +00:00
case 1 : cardString << "Three" ;
2007-02-14 01:09:31 +00:00
break ;
2007-09-03 14:42:49 +00:00
case 0 : cardString << "Deuce" ;
break ;
2007-02-14 01:09:31 +00:00
default : cardString << "ERROR" ;
}
//Kicker 5
switch ( fifthPartB ) {
2007-09-03 13:56:31 +00:00
case 9 : cardString << "Jack" ;
2007-02-14 01:09:31 +00:00
break ;
2007-09-03 13:56:31 +00:00
case 8 : cardString << "Ten" ;
2007-02-14 01:09:31 +00:00
break ;
2007-09-03 13:56:31 +00:00
case 7 : cardString << "Nine" ;
2007-02-14 01:09:31 +00:00
break ;
2007-09-03 13:56:31 +00:00
case 6 : cardString << "Eight" ;
2007-02-14 01:09:31 +00:00
break ;
2007-09-03 13:56:31 +00:00
case 5 : cardString << "Seven" ;
2007-02-14 01:09:31 +00:00
break ;
2007-09-03 13:56:31 +00:00
case 4 : cardString << "Six" ;
2007-02-14 01:09:31 +00:00
break ;
2007-09-03 13:56:31 +00:00
case 3 : cardString << "Five" ;
2007-02-14 01:09:31 +00:00
break ;
2007-09-03 13:56:31 +00:00
case 2 : cardString << "Four" ;
2007-02-14 01:09:31 +00:00
break ;
2007-09-03 13:56:31 +00:00
case 1 : cardString << "Three" ;
2007-02-14 01:09:31 +00:00
break ;
2007-09-03 14:42:49 +00:00
case 0 : cardString << "Deuce" ;
break ;
2007-02-14 01:09:31 +00:00
default : cardString << "ERROR" ;
}
}
break ;
default : cardString << "ERROR" ;
}
return cardString ;
}
2007-05-15 23:34:03 +00:00
2007-09-03 13:56:31 +00:00
QString Log :: determineHandName ( int myCardsValueInt ) {
2007-09-28 00:16:34 +00:00
// size_t i;
2007-09-03 13:56:31 +00:00
list < int > shownCardsValueInt ;
list < int > sameHandCardsValueInt ;
bool different = false ;
bool equal = false ;
2007-09-27 18:07:03 +00:00
HandInterface * currentHand = myW -> getSession (). getCurrentGame () -> getCurrentHand ();
PlayerListConstIterator it_c ;
2007-09-02 18:35:39 +00:00
// collect cardsValueInt of all players who will show their cards
2007-09-27 18:07:03 +00:00
// for(i=0; i<MAX_NUMBER_OF_PLAYERS; i++) {
// if(currentHand->getPlayerArray()[i]->getMyActiveStatus() && currentHand->getPlayerArray()[i]->getMyAction() != PLAYER_ACTION_FOLD) {
// shownCardsValueInt.push_back(currentHand->getPlayerArray()[i]->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 ());
2007-09-03 13:56:31 +00:00
}
}
2007-09-02 18:35:39 +00:00
2007-09-03 13:56:31 +00:00
// erase own cardsValueInt
list < int >:: iterator it ;
for ( it = shownCardsValueInt . begin (); it != shownCardsValueInt . end (); it ++ ) {
if (( * it ) == myCardsValueInt ) {
shownCardsValueInt . erase ( it );
break ;
}
}
// for(it = shownCardsValueInt.begin(); it != shownCardsValueInt.end(); it++) {
// cout << *it << endl;
// }
//
// cout << endl;
2007-09-02 18:35:39 +00:00
QString handName ;
2007-09-03 13:56:31 +00:00
switch ( myCardsValueInt / 100000000 ) {
2007-09-02 18:35:39 +00:00
// Royal Flush
case 9 : {
2007-09-03 13:56:31 +00:00
handName = translateCardsValueCode ( myCardsValueInt ). at ( 0 );
2007-09-02 18:35:39 +00:00
}
break ;
// Straight Flush
case 8 : {
2007-09-03 13:56:31 +00:00
handName = translateCardsValueCode ( myCardsValueInt ). at ( 0 ) + translateCardsValueCode ( myCardsValueInt ). at ( 1 );
2007-09-02 18:35:39 +00:00
}
break ;
2007-09-03 13:56:31 +00:00
// Four of a kind
2007-09-02 18:35:39 +00:00
case 7 : {
2007-09-03 14:42:49 +00:00
2007-09-03 13:56:31 +00:00
handName = translateCardsValueCode ( myCardsValueInt ). at ( 0 ) + translateCardsValueCode ( myCardsValueInt ). at ( 1 );
2007-09-03 14:42:49 +00:00
2007-09-23 17:07:52 +00:00
// same hand detection
2007-09-03 14:42:49 +00:00
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?
2007-09-03 15:59:55 +00:00
for ( it = sameHandCardsValueInt . begin (); it != sameHandCardsValueInt . end (); ) {
2007-09-03 14:42:49 +00:00
if ((( * it ) / 10000 ) == ( myCardsValueInt / 10000 )) {
equal = true ;
2007-09-03 15:59:55 +00:00
it ++ ;
2007-09-03 14:42:49 +00:00
} else {
different = true ;
2007-09-03 15:59:55 +00:00
it = sameHandCardsValueInt . erase ( it );
2007-09-03 14:42:49 +00:00
}
}
if ( different ) {
handName += ", fifth card " + translateCardsValueCode ( myCardsValueInt ). at ( 2 );
}
}
2007-09-23 17:07:52 +00:00
2007-09-02 18:35:39 +00:00
}
break ;
// Full House
case 6 : {
2007-09-03 13:56:31 +00:00
handName = translateCardsValueCode ( myCardsValueInt ). at ( 0 ) + translateCardsValueCode ( myCardsValueInt ). at ( 1 ) + translateCardsValueCode ( myCardsValueInt ). at ( 2 );
2007-09-02 18:35:39 +00:00
}
break ;
// Flush
case 5 : {
2007-09-03 14:42:49 +00:00
2007-09-03 13:56:31 +00:00
handName = translateCardsValueCode ( myCardsValueInt ). at ( 0 ) + translateCardsValueCode ( myCardsValueInt ). at ( 1 );
2007-09-03 14:42:49 +00:00
2007-09-23 17:07:52 +00:00
// same hand detection
2007-09-03 14:42:49 +00:00
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?
2007-09-03 15:59:55 +00:00
for ( it = sameHandCardsValueInt . begin (); it != sameHandCardsValueInt . end (); ) {
2007-09-03 14:42:49 +00:00
if ((( * it ) / 10000 ) == ( myCardsValueInt / 10000 )) {
equal = true ;
2007-09-03 15:59:55 +00:00
it ++ ;
2007-09-03 14:42:49 +00:00
} else {
different = true ;
2007-09-03 15:59:55 +00:00
it = sameHandCardsValueInt . erase ( it );
2007-09-03 14:42:49 +00:00
}
}
if ( different ) {
handName += ", second card " + translateCardsValueCode ( myCardsValueInt ). at ( 2 );
}
// 2.there are still same hands
if ( equal ) {
different = false ;
equal = false ;
// second kicker?
2007-09-03 15:59:55 +00:00
for ( it = sameHandCardsValueInt . begin (); it != sameHandCardsValueInt . end (); ) {
2007-09-03 14:42:49 +00:00
if ((( * it ) / 100 ) == ( myCardsValueInt / 100 )) {
equal = true ;
2007-09-03 15:59:55 +00:00
it ++ ;
2007-09-03 14:42:49 +00:00
} else {
different = true ;
2007-09-03 15:59:55 +00:00
it = sameHandCardsValueInt . erase ( it );
2007-09-03 14:42:49 +00:00
}
}
if ( different ) {
handName += ", third card " + translateCardsValueCode ( myCardsValueInt ). at ( 3 );
}
// 3.there are still same hands
if ( equal ) {
different = false ;
equal = false ;
// third kicker?
2007-09-03 15:59:55 +00:00
for ( it = sameHandCardsValueInt . begin (); it != sameHandCardsValueInt . end (); ) {
2007-09-03 14:42:49 +00:00
if ((( * it ) / 10 ) == ( myCardsValueInt / 10 )) {
equal = true ;
2007-09-03 15:59:55 +00:00
it ++ ;
2007-09-03 14:42:49 +00:00
} else {
different = true ;
2007-09-29 17:08:05 +00:00
it = sameHandCardsValueInt . erase ( it );
2007-09-03 14:42:49 +00:00
}
}
if ( different ) {
handName += ", fourth card " + translateCardsValueCode ( myCardsValueInt ). at ( 4 );
}
// 4.there are still same hands
if ( equal ) {
different = false ;
equal = false ;
// third kicker?
2007-09-03 15:59:55 +00:00
for ( it = sameHandCardsValueInt . begin (); it != sameHandCardsValueInt . end (); ) {
2007-09-03 14:42:49 +00:00
if (( * it ) == myCardsValueInt ) {
equal = true ;
2007-09-03 15:59:55 +00:00
it ++ ;
2007-09-03 14:42:49 +00:00
} else {
different = true ;
2007-09-03 15:59:55 +00:00
it = sameHandCardsValueInt . erase ( it );
2007-09-03 14:42:49 +00:00
}
}
if ( different ) {
handName += ", fifth card " + translateCardsValueCode ( myCardsValueInt ). at ( 5 );
}
}
}
}
}
2007-09-23 17:07:52 +00:00
2007-09-02 18:35:39 +00:00
}
break ;
// Straight
case 4 : {
2007-09-03 13:56:31 +00:00
handName = translateCardsValueCode ( myCardsValueInt ). at ( 0 ) + translateCardsValueCode ( myCardsValueInt ). at ( 1 );
2007-09-02 18:35:39 +00:00
}
break ;
2007-09-03 13:56:31 +00:00
// Three of a kind
2007-09-02 18:35:39 +00:00
case 3 : {
2007-09-03 13:56:31 +00:00
handName = translateCardsValueCode ( myCardsValueInt ). at ( 0 ) + translateCardsValueCode ( myCardsValueInt ). at ( 1 );
2007-09-03 14:42:49 +00:00
2007-09-23 17:07:52 +00:00
// same hand detection
2007-09-03 14:42:49 +00:00
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?
2007-09-03 15:59:55 +00:00
for ( it = sameHandCardsValueInt . begin (); it != sameHandCardsValueInt . end (); ) {
2007-09-03 14:42:49 +00:00
if ((( * it ) / 10000 ) == ( myCardsValueInt / 10000 )) {
equal = true ;
2007-09-03 15:59:55 +00:00
it ++ ;
2007-09-03 14:42:49 +00:00
} else {
different = true ;
2007-09-03 15:59:55 +00:00
it = sameHandCardsValueInt . erase ( it );
2007-09-03 14:42:49 +00:00
}
}
if ( different ) {
handName += ", fourth card " + translateCardsValueCode ( myCardsValueInt ). at ( 2 );
}
// 2.there are still same hands
if ( equal ) {
different = false ;
equal = false ;
// second kicker?
2007-09-03 15:59:55 +00:00
for ( it = sameHandCardsValueInt . begin (); it != sameHandCardsValueInt . end (); ) {
2007-09-03 14:42:49 +00:00
if ((( * it ) / 100 ) == ( myCardsValueInt / 100 )) {
equal = true ;
2007-09-03 15:59:55 +00:00
it ++ ;
2007-09-03 14:42:49 +00:00
} else {
different = true ;
2007-09-03 15:59:55 +00:00
it = sameHandCardsValueInt . erase ( it );
2007-09-03 14:42:49 +00:00
}
}
if ( different ) {
handName += ", fifth card " + translateCardsValueCode ( myCardsValueInt ). at ( 3 );
}
}
}
2007-09-23 17:07:52 +00:00
2007-09-02 18:35:39 +00:00
}
break ;
2007-09-03 13:56:31 +00:00
// Two Pairs
2007-09-02 18:35:39 +00:00
case 2 : {
2007-09-03 14:42:49 +00:00
2007-09-03 13:56:31 +00:00
handName = translateCardsValueCode ( myCardsValueInt ). at ( 0 ) + translateCardsValueCode ( myCardsValueInt ). at ( 1 ) + translateCardsValueCode ( myCardsValueInt ). at ( 2 );
2007-09-03 14:42:49 +00:00
2007-09-23 17:07:52 +00:00
// same hand detection
2007-09-03 14:42:49 +00:00
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?
2007-09-03 15:59:55 +00:00
for ( it = sameHandCardsValueInt . begin (); it != sameHandCardsValueInt . end (); ) {
2007-09-03 14:42:49 +00:00
if ((( * it ) / 100 ) == ( myCardsValueInt / 100 )) {
equal = true ;
2007-09-03 15:59:55 +00:00
it ++ ;
2007-09-03 14:42:49 +00:00
} else {
different = true ;
2007-09-03 15:59:55 +00:00
it = sameHandCardsValueInt . erase ( it );
2007-09-03 14:42:49 +00:00
}
}
if ( different ) {
handName += ", fifth card " + translateCardsValueCode ( myCardsValueInt ). at ( 3 );
}
}
2007-09-23 17:07:52 +00:00
2007-09-02 18:35:39 +00:00
}
break ;
2007-09-03 13:56:31 +00:00
// Pair
2007-09-02 18:35:39 +00:00
case 1 : {
2007-09-03 14:42:49 +00:00
2007-09-03 13:56:31 +00:00
handName = translateCardsValueCode ( myCardsValueInt ). at ( 0 ) + translateCardsValueCode ( myCardsValueInt ). at ( 1 );
2007-09-03 14:42:49 +00:00
2007-09-23 17:07:52 +00:00
// same hand detection
2007-09-03 14:42:49 +00:00
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?
2007-09-03 15:59:55 +00:00
for ( it = sameHandCardsValueInt . begin (); it != sameHandCardsValueInt . end (); ) {
2007-09-03 14:42:49 +00:00
if ((( * it ) / 10000 ) == ( myCardsValueInt / 10000 )) {
equal = true ;
2007-09-03 15:59:55 +00:00
it ++ ;
2007-09-03 14:42:49 +00:00
} else {
different = true ;
2007-09-03 15:59:55 +00:00
it = sameHandCardsValueInt . erase ( it );
2007-09-03 14:42:49 +00:00
}
}
if ( different ) {
handName += ", third card " + translateCardsValueCode ( myCardsValueInt ). at ( 2 );
}
// 2.there are still same hands
if ( equal ) {
different = false ;
equal = false ;
// second kicker?
2007-09-03 15:59:55 +00:00
for ( it = sameHandCardsValueInt . begin (); it != sameHandCardsValueInt . end (); ) {
2007-09-03 14:42:49 +00:00
if ((( * it ) / 100 ) == ( myCardsValueInt / 100 )) {
equal = true ;
2007-09-03 15:59:55 +00:00
it ++ ;
2007-09-03 14:42:49 +00:00
} else {
different = true ;
2007-09-03 15:59:55 +00:00
it = sameHandCardsValueInt . erase ( it );
2007-09-03 14:42:49 +00:00
}
}
if ( different ) {
handName += ", fourth card " + translateCardsValueCode ( myCardsValueInt ). at ( 3 );
}
// 3.there are still same hands
if ( equal ) {
different = false ;
equal = false ;
// third kicker?
2007-09-03 15:59:55 +00:00
for ( it = sameHandCardsValueInt . begin (); it != sameHandCardsValueInt . end (); ) {
2007-09-03 14:42:49 +00:00
if (( * it ) == myCardsValueInt ) {
equal = true ;
2007-09-03 15:59:55 +00:00
it ++ ;
2007-09-03 14:42:49 +00:00
} else {
different = true ;
2007-09-03 15:59:55 +00:00
it = sameHandCardsValueInt . erase ( it );
2007-09-03 14:42:49 +00:00
}
}
if ( different ) {
handName += ", fifth card " + translateCardsValueCode ( myCardsValueInt ). at ( 4 );
}
}
}
}
2007-09-23 17:07:52 +00:00
2007-09-02 18:35:39 +00:00
}
break ;
// highestCard
case 0 : {
2007-09-03 13:56:31 +00:00
handName = translateCardsValueCode ( myCardsValueInt ). at ( 0 ) + translateCardsValueCode ( myCardsValueInt ). at ( 1 );
2007-09-23 17:07:52 +00:00
// same hand detection
2007-09-03 13:56:31 +00:00
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?
2007-09-03 15:59:55 +00:00
for ( it = sameHandCardsValueInt . begin (); it != sameHandCardsValueInt . end (); ) {
2007-09-03 13:56:31 +00:00
if ((( * it ) / 10000 ) == ( myCardsValueInt / 10000 )) {
equal = true ;
2007-09-03 15:59:55 +00:00
it ++ ;
2007-09-03 13:56:31 +00:00
} else {
different = true ;
2007-09-03 15:59:55 +00:00
it = sameHandCardsValueInt . erase ( it );
2007-09-03 13:56:31 +00:00
}
}
if ( different ) {
handName += ", second card " + translateCardsValueCode ( myCardsValueInt ). at ( 2 );
}
// 2.there are still same hands
if ( equal ) {
different = false ;
equal = false ;
// second kicker?
2007-09-03 15:59:55 +00:00
for ( it = sameHandCardsValueInt . begin (); it != sameHandCardsValueInt . end (); ) {
2007-09-03 13:56:31 +00:00
if ((( * it ) / 100 ) == ( myCardsValueInt / 100 )) {
equal = true ;
2007-09-03 15:59:55 +00:00
it ++ ;
2007-09-03 13:56:31 +00:00
} else {
different = true ;
2007-09-03 15:59:55 +00:00
it = sameHandCardsValueInt . erase ( it );
2007-09-03 13:56:31 +00:00
}
}
if ( different ) {
handName += ", third card " + translateCardsValueCode ( myCardsValueInt ). at ( 3 );
}
// 3.there are still same hands
if ( equal ) {
different = false ;
equal = false ;
// third kicker?
2007-09-03 15:59:55 +00:00
for ( it = sameHandCardsValueInt . begin (); it != sameHandCardsValueInt . end (); ) {
2007-09-03 13:56:31 +00:00
if ((( * it ) / 10 ) == ( myCardsValueInt / 10 )) {
equal = true ;
2007-09-03 15:59:55 +00:00
it ++ ;
2007-09-03 13:56:31 +00:00
} else {
different = true ;
2007-09-23 17:07:52 +00:00
it = sameHandCardsValueInt . erase ( it );
2007-09-03 13:56:31 +00:00
}
}
if ( different ) {
handName += ", fourth card " + translateCardsValueCode ( myCardsValueInt ). at ( 4 );
}
// 4.there are still same hands
if ( equal ) {
different = false ;
equal = false ;
// third kicker?
2007-09-03 15:59:55 +00:00
for ( it = sameHandCardsValueInt . begin (); it != sameHandCardsValueInt . end (); ) {
2007-09-03 13:56:31 +00:00
if (( * it ) == myCardsValueInt ) {
equal = true ;
2007-09-03 15:59:55 +00:00
it ++ ;
2007-09-03 13:56:31 +00:00
} else {
different = true ;
2007-09-03 15:59:55 +00:00
it = sameHandCardsValueInt . erase ( it );
2007-09-03 13:56:31 +00:00
}
}
if ( different ) {
handName += ", fifth card " + translateCardsValueCode ( myCardsValueInt ). at ( 5 );
}
}
}
}
}
2007-09-23 17:07:52 +00:00
2007-09-02 18:35:39 +00:00
}
break ;
default : {}
}
return handName ;
}
2007-05-15 23:34:03 +00:00
void Log :: writeLogFileStream ( QString streamString ) {
2007-05-16 01:08:01 +00:00
if ( myLogFile ) {
if ( myLogFile -> open ( QIODevice :: ReadWrite )) {
QTextStream stream ( myLogFile );
stream . readAll ();
stream << streamString ;
myLogFile -> 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 ; }
2007-05-15 23:34:03 +00:00
}