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-02-03 22:47:16 +00:00
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-05-26 19:28:34 +00:00
connect ( this , SIGNAL ( signalLogPlayerWinsMsg ( int , int )), this , SLOT ( logPlayerWinsMsg ( int , int )));
connect ( this , SIGNAL ( signalLogDealBoardCardsMsg ( int , int , int , int , int , int )), this , SLOT ( logDealBoardCardsMsg ( int , int , int , int , int , int )));
connect ( this , SIGNAL ( signalLogFlipHoleCardsMsg ( std :: string , int , int , int , std :: string )), this , SLOT ( logFlipHoleCardsMsg ( std :: string , int , int , int , std :: string )));
2007-06-04 07:43:44 +00:00
connect ( this , SIGNAL ( signalLogPlayerLeftMsg ( int )), this , SLOT ( logPlayerLeftMsg ( int )));
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
QPixmap :: QPixmap ( ":graphics/resources/graphics/logoChip3D.png" ). save ( myLogDir -> absolutePath () + "/logo.png" );
// 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 " ;
stream << "<h3><b>Log-File for PokerTH 0.4 Session started on " + QDate :: currentDate (). toString ( "yyyy-MM-dd" ) + " at " + QTime :: currentTime (). toString ( "hh:mm:ss" ) + "</b></h3> \n " ;
// 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-03-31 00:04:36 +00:00
int i , j , k ;
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-02-04 13:46:27 +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>" ;
logFileStreamString += "CASH: " ;
2007-02-10 20:00:33 +00:00
//Aktive Spieler zählen
int activePlayersCounter = 0 ;
2007-05-15 21:22:16 +00:00
HandInterface * currentHand = myW -> getSession (). getCurrentGame () -> getCurrentHand ();
2007-04-17 07:28:32 +00:00
for ( k = 0 ; k < MAX_NUMBER_OF_PLAYERS ; k ++ ) {
2007-05-15 21:22:16 +00:00
if ( currentHand -> getPlayerArray ()[ k ] -> getMyActiveStatus () == 1 ) activePlayersCounter ++ ;
2007-02-10 20:00:33 +00:00
}
2007-05-15 21:22:16 +00:00
k = 0 ;
if ( activePlayersCounter > 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 ) {
2007-05-15 23:34:03 +00:00
if ( k == 1 ) { logFileStreamString += ", " ; }
2007-05-15 21:22:16 +00:00
k = 1 ;
2007-05-15 23:34:03 +00:00
logFileStreamString += QString :: fromUtf8 ( currentHand -> getPlayerArray ()[ i ] -> getMyName (). c_str ()) + " (Dealer): " + QString :: number ( currentHand -> getPlayerArray ()[ i ] -> getMyCash (), 10 ) + "$" ;
2007-05-15 21:22:16 +00:00
}
else {
2007-05-15 23:34:03 +00:00
if ( k == 1 ) { logFileStreamString += ", " ; }
2007-05-15 21:22:16 +00:00
k = 1 ;
2007-05-15 23:34:03 +00:00
logFileStreamString += QString :: fromUtf8 ( currentHand -> getPlayerArray ()[ i ] -> getMyName (). c_str ()) + ": " + QString :: number ( currentHand -> getPlayerArray ()[ i ] -> getMyCash () + currentHand -> getPlayerArray ()[ i ] -> getMySet (), 10 ) + "$" ;
2007-05-15 21:22:16 +00:00
}
}
}
}
else {
for ( i = 0 ; i < currentHand -> getStartQuantityPlayers (); i ++ ) {
if ( currentHand -> getPlayerArray ()[ i ] -> getMyActiveStatus ()) {
//print cash only for active players
2007-05-18 11:38:37 +00:00
if ( currentHand -> getPlayerArray ()[ i ] -> getMyButton () == 2 ) {
2007-05-15 23:34:03 +00:00
if ( k == 1 ) { logFileStreamString += ", " ; }
2007-05-15 21:22:16 +00:00
k = 1 ;
2007-05-15 23:34:03 +00:00
logFileStreamString += QString :: fromUtf8 ( currentHand -> getPlayerArray ()[ i ] -> getMyName (). c_str ()) + " (Dealer): " + QString :: number ( currentHand -> getPlayerArray ()[ i ] -> getMyCash () + currentHand -> getPlayerArray ()[ i ] -> getMySet (), 10 ) + "$" ;
2007-05-15 21:22:16 +00:00
}
else {
2007-05-15 23:34:03 +00:00
if ( k == 1 ) { logFileStreamString += ", " ; }
2007-05-15 21:22:16 +00:00
k = 1 ;
2007-05-15 23:34:03 +00:00
logFileStreamString += QString :: fromUtf8 ( currentHand -> getPlayerArray ()[ i ] -> getMyName (). c_str ()) + ": " + QString :: number ( currentHand -> getPlayerArray ()[ i ] -> getMyCash () + currentHand -> getPlayerArray ()[ i ] -> getMySet (), 10 ) + "$" ;
2007-05-15 21:22:16 +00:00
}
}
}
}
2007-05-15 23:34:03 +00:00
logFileStreamString += "</br>BLINDS: " ;
2007-05-15 21:22:16 +00:00
for ( i = 0 ; i < MAX_NUMBER_OF_PLAYERS ; i ++ ) {
2007-02-10 20:00:33 +00:00
2007-05-15 21:22:16 +00:00
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 ++ ;
}
2007-05-18 11:38:37 +00:00
2007-05-15 21:22:16 +00:00
switch ( currentHand -> getPlayerArray ()[( i + currentHand -> getDealerPosition () + j ) % MAX_NUMBER_OF_PLAYERS ] -> getMyButton ()) {
2007-05-15 23:34:03 +00:00
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 ) + "$), " ;
2007-05-15 21:22:16 +00:00
break ;
2007-05-15 23:34:03 +00:00
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 ) + "$)" ;
2007-05-15 21:22:16 +00:00
break ;
default : ;
2007-05-18 11:38:37 +00:00
}
2007-02-10 20:00:33 +00:00
}
2007-05-15 21:22:16 +00:00
2007-05-15 23:34:03 +00:00
logFileStreamString += "</br></br><b>PREFLOP</b>" ;
logFileStreamString += "</br> \n " ;
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-10 20:00:33 +00:00
}
2007-02-04 23:58:50 +00:00
}
2007-02-14 23:24:17 +00:00
void Log :: logPlayerWinsMsg ( int playerID , int pot ) {
2007-02-04 23:58:50 +00:00
2007-05-11 12:01:13 +00:00
HandInterface * currentHand = myW -> getSession (). getCurrentGame () -> getCurrentHand ();
2007-05-15 21:22:16 +00:00
2007-05-11 12:01:13 +00:00
myW -> textBrowser_Log -> append ( QString :: fromUtf8 ( currentHand -> getPlayerArray ()[ playerID ] -> getMyName (). c_str ()) + " 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
logFileStreamString += "</br><i>" + QString :: fromUtf8 ( currentHand -> getPlayerArray ()[ playerID ] -> getMyName (). c_str ()) + " wins " + QString :: number ( pot , 10 ) + "$!!!</i></p> \n " ;
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-05-26 19:28:34 +00:00
void Log :: logFlipHoleCardsMsg ( string playerName , int card1 , int card2 , int cardsValueInt , string 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-03-17 14:58:12 +00:00
QString tempHandName ;
// int sameHandCounter = 0;
// int difference = 0;
// int tempHighestCardsValueInt = 0;
//
// //erste Ziffer : Blattname
// int firstPart = cardsValueInt/100000000;
// //zweite und dritte Ziffer : Kicker, highest Card, usw.
// int secondPart = cardsValueInt/1000000 - firstPart*100;
// //vierte und fünfte Ziffer
// int thirdPart = cardsValueInt/10000 - firstPart*10000 - secondPart*100;
// // usw
// int fourthPart = cardsValueInt/100 - firstPart*1000000 - secondPart*10000 - thirdPart*100;
// //
// int fifthPart = cardsValueInt - firstPart*100000000 - secondPart*1000000 - thirdPart*10000 - fourthPart*100;
// // fuer highest Card
// int fifthPartA = cardsValueInt/10 - firstPart*10000000 - secondPart*100000 - thirdPart*1000 - fourthPart*10;
// int fifthPartB = cardsValueInt - firstPart*100000000 - secondPart*1000000 - thirdPart*10000 - fourthPart*100 - fifthPartA*10;
2007-03-17 12:02:28 +00:00
2007-03-17 14:58:12 +00:00
switch ( cardsValueInt / 100000000 ) {
// Royal Flush
case 9 : {
tempHandName = translateCardsValueCode ( cardsValueInt ). at ( 0 );
2007-03-17 12:02:28 +00:00
}
2007-03-17 14:58:12 +00:00
break ;
// Straight Flush
case 8 : {
tempHandName = translateCardsValueCode ( cardsValueInt ). at ( 0 ) + translateCardsValueCode ( cardsValueInt ). at ( 1 );
2007-03-17 12:02:28 +00:00
}
2007-03-17 14:58:12 +00:00
break ;
// Vierling
case 7 : {
tempHandName = translateCardsValueCode ( cardsValueInt ). at ( 0 ) + translateCardsValueCode ( cardsValueInt ). at ( 1 );
}
break ;
// Full House
case 6 : {
tempHandName = translateCardsValueCode ( cardsValueInt ). at ( 0 ) + translateCardsValueCode ( cardsValueInt ). at ( 1 ) + translateCardsValueCode ( cardsValueInt ). at ( 2 );
}
break ;
// Flush
case 5 : {
tempHandName = translateCardsValueCode ( cardsValueInt ). at ( 0 ) + translateCardsValueCode ( cardsValueInt ). at ( 1 );
}
break ;
// Straight
case 4 : {
tempHandName = translateCardsValueCode ( cardsValueInt ). at ( 0 ) + translateCardsValueCode ( cardsValueInt ). at ( 1 );
}
break ;
// Drilling
case 3 : {
// Kicker anzeigen?
// for(i=0; i<5; i++) {
2007-05-11 12:01:13 +00:00
// if(currentHand->getPlayerArray()[i]->getMyAction() != 1 && currentHand->getPlayerArray()[i]->getMyActiveStatus() == 1 && currentHand->getPlayerArray()[i]->getMyCardsValueInt()/100000000 == 3 && currentHand->getPlayerArray()[i]->getMyCardsValueInt()/1000000 - (int)(currentHand->getPlayerArray()[i]->getMyCardsValueInt()/100000000)*100 == secondPart) {
2007-03-17 14:58:12 +00:00
// sameHandCounter++;
2007-05-11 12:01:13 +00:00
// if(currentHand->getPlayerArray()[i]->getMyCardsValueInt() > tempHighestCardsValueInt) {
// tempHighestCardsValueInt = currentHand->getPlayerArray()[i]->getMyCardsValueInt();
2007-03-17 14:58:12 +00:00
// }
// }
// }
// Unterschied ermitteln
// for(i=0; i<5; i++) {
2007-05-11 12:01:13 +00:00
// if(currentHand->getPlayerArray()[i]->getMyAction() != 1 && currentHand->getPlayerArray()[i]->getMyActiveStatus() == 1 && currentHand->getPlayerArray()[i]->getMyCardsValueInt()/100000000 == 3 && currentHand->getPlayerArray()[i]->getMyCardsValueInt()/1000000 - (int)(currentHand->getPlayerArray()[i]->getMyCardsValueInt()/100000000)*100 == secondPart) {
2007-03-17 14:58:12 +00:00
// sameHandCounter++;
2007-05-11 12:01:13 +00:00
// if(currentHand->getPlayerArray()[i]->getMyCardsValueInt() > tempHighestCardsValueInt) {
// tempHighestCardsValueInt = currentHand->getPlayerArray()[i]->getMyCardsValueInt();
2007-03-17 14:58:12 +00:00
// }
// }
// }
// if(sameHandCounter==1) {
tempHandName = translateCardsValueCode ( cardsValueInt ). at ( 0 ) + translateCardsValueCode ( cardsValueInt ). at ( 1 );
/* } else {
if(cardsValueInt == tempHighestCardsValueInt) {
for(i=0; i<5; i++) {
2007-05-11 12:01:13 +00:00
if(currentHand->getPlayerArray()[i]->getMyAction() != 1 && currentHand->getPlayerArray()[i]->getMyActiveStatus() == 1 && currentHand->getPlayerArray()[i]->getMyCardsValueInt()/100000000 == 3 && currentHand->getPlayerArray()[i]->getMyCardsValueInt()/1000000 - (int)(currentHand->getPlayerArray()[i]->getMyCardsValueInt()/100000000)*100 == secondPart) ;
2007-03-17 14:58:12 +00:00
}
}
}*/
}
break ;
// Doppelpaar
case 2 : {
tempHandName = translateCardsValueCode ( cardsValueInt ). at ( 0 ) + translateCardsValueCode ( cardsValueInt ). at ( 1 ) + translateCardsValueCode ( cardsValueInt ). at ( 2 );
}
break ;
// Paar
case 1 : {
tempHandName = translateCardsValueCode ( cardsValueInt ). at ( 0 ) + translateCardsValueCode ( cardsValueInt ). at ( 1 );
}
break ;
// highestCard
case 0 : {
tempHandName = translateCardsValueCode ( cardsValueInt ). at ( 0 ) + translateCardsValueCode ( cardsValueInt ). at ( 1 );
}
break ;
default : {}
2007-03-17 12:02:28 +00:00
}
2007-03-17 14:58:12 +00:00
2007-05-26 19:28:34 +00:00
myW -> textBrowser_Log -> append ( QString :: fromUtf8 ( playerName . c_str ()) + " " + QString :: fromUtf8 ( showHas . c_str ()) + " \" " + 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-05-26 19:28:34 +00:00
logFileStreamString += QString :: fromUtf8 ( playerName . c_str ()) + " " + QString :: fromUtf8 ( showHas . c_str ()) + " [ <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-05-26 19:28:34 +00:00
myW -> textBrowser_Log -> append ( QString :: fromUtf8 ( playerName . c_str ()) + " " + QString :: fromUtf8 ( showHas . c_str ()) + " [" + 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-05-26 19:28:34 +00:00
logFileStreamString += QString :: fromUtf8 ( playerName . c_str ()) + " " + QString :: fromUtf8 ( showHas . c_str ()) + " [<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-04 07:43:44 +00:00
void Log :: logPlayerLeftMsg ( int playerID ) {
HandInterface * currentHand = myW -> getSession (). getCurrentGame () -> getCurrentHand ();
myW -> textBrowser_Log -> append ( "<i>" + QString :: fromUtf8 ( currentHand -> getPlayerArray ()[ playerID ] -> getMyName (). c_str ()) + " has left the game!</i>" );
if ( myConfig -> readConfigInt ( "LogOnOff" )) {
logFileStreamString += "<i>" + QString :: fromUtf8 ( currentHand -> getPlayerArray ()[ playerID ] -> getMyName (). c_str ()) + " has left the game!</i><br> \n " ;
if ( myConfig -> readConfigInt ( "LogInterval" ) == 0 ) {
writeLogFileStream ( logFileStreamString );
logFileStreamString = "" ;
}
}
}
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 ) {
case 9 : cardString << "Royal Flush" ;
break ;
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 ;
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" ;
}
}
break ;
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 ;
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" ;
}
}
break ;
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 ;
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-03-17 12:02:28 +00:00
case 12 : cardString << ", Ace kicker" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 11 : cardString << ", King kicker" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 10 : cardString << ", Queen kicker" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 9 : cardString << ", Jack kicker" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 8 : cardString << ", Ten kicker" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 7 : cardString << ", Nine kicker" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 6 : cardString << ", Eight kicker" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 5 : cardString << ", Seven kicker" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 4 : cardString << ", Six kicker" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 3 : cardString << ", Five kicker" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 2 : cardString << ", Four kicker" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 1 : cardString << ", Three kicker" ;
2007-02-14 01:09:31 +00:00
break ;
default : cardString << "ERROR" ;
}
//Kicker 2
switch ( fourthPart ) {
2007-03-17 12:02:28 +00:00
case 12 : cardString << ", Ace kicker" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 11 : cardString << ", King kicker" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 10 : cardString << ", Queen kicker" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 9 : cardString << ", Jack kicker" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 8 : cardString << ", Ten kicker" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 7 : cardString << ", Nine kicker" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 6 : cardString << ", Eight kicker" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 5 : cardString << ", Seven kicker" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 4 : cardString << ", Six kicker" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 3 : cardString << ", Five kicker" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 2 : cardString << ", Four kicker" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 1 : cardString << ", Three kicker" ;
2007-02-14 01:09:31 +00:00
break ;
default : cardString << "ERROR" ;
}
}
break ;
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-03-17 12:02:28 +00:00
case 12 : cardString << ", Ace kicker" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 11 : cardString << ", King kicker" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 10 : cardString << ", Queen kicker" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 9 : cardString << ", Jack kicker" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 8 : cardString << ", Ten kicker" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 7 : cardString << ", Nine kicker" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 6 : cardString << ", Eight kicker" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 5 : cardString << ", Seven kicker" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 4 : cardString << ", Six kicker" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 3 : cardString << ", Five kicker" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 2 : cardString << ", Four kicker" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 1 : cardString << ", Three kicker" ;
2007-02-14 01:09:31 +00:00
break ;
default : cardString << "ERROR" ;
}
}
break ;
case 1 : {
2007-03-17 12:02:28 +00:00
cardString << "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-03-17 12:02:28 +00:00
case 12 : cardString << ", Ace kicker" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 11 : cardString << ", King kicker" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 10 : cardString << ", Queen kicker" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 9 : cardString << ", Jack kicker" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 8 : cardString << ", Ten kicker" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 7 : cardString << ", Nine kicker" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 6 : cardString << ", Eight kicker" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 5 : cardString << ", Seven kicker" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 4 : cardString << ", Six kicker" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 3 : cardString << ", Five kicker" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 2 : cardString << ", Four kicker" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 1 : cardString << ", Three kicker" ;
2007-02-14 01:09:31 +00:00
break ;
default : cardString << "ERROR" ;
}
//Kicker 2
switch ( fourthPart ) {
2007-03-17 12:02:28 +00:00
case 12 : cardString << ", Ace kicker" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 11 : cardString << ", King kicker" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 10 : cardString << ", Queen kicker" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 9 : cardString << ", Jack kicker" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 8 : cardString << ", Ten kicker" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 7 : cardString << ", Nine kicker" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 6 : cardString << ", Eight kicker" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 5 : cardString << ", Seven kicker" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 4 : cardString << ", Six kicker" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 3 : cardString << ", Five kicker" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 2 : cardString << ", Four kicker" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 1 : cardString << ", Three kicker" ;
2007-02-14 01:09:31 +00:00
break ;
default : cardString << "ERROR" ;
}
//Kicker 3
switch ( fifthPart ) {
2007-03-17 12:02:28 +00:00
case 12 : cardString << ", Ace kicker" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 11 : cardString << ", King kicker" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 10 : cardString << ", Queen kicker" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 9 : cardString << ", Jack kicker" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 8 : cardString << ", Ten kicker" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 7 : cardString << ", Nine kicker" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 6 : cardString << ", Eight kicker" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 5 : cardString << ", Seven kicker" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 4 : cardString << ", Six kicker" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 3 : cardString << ", Five kicker" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 2 : cardString << ", Four kicker" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 1 : cardString << ", Three kicker" ;
2007-02-14 01:09:31 +00:00
break ;
default : cardString << "ERROR" ;
}
}
break ;
case 0 : {
2007-03-17 12:02:28 +00:00
cardString << "Highest 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-03-17 12:02:28 +00:00
case 12 : cardString << ", Ace kicker" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 11 : cardString << ", King kicker" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 10 : cardString << ", Queen kicker" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 9 : cardString << ", Jack kicker" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 8 : cardString << ", Ten kicker" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 7 : cardString << ", Nine kicker" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 6 : cardString << ", Eight kicker" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 5 : cardString << ", Seven kicker" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 4 : cardString << ", Six kicker" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 3 : cardString << ", Five kicker" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 2 : cardString << ", Four kicker" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 1 : cardString << ", Three kicker" ;
2007-02-14 01:09:31 +00:00
break ;
default : cardString << "ERROR" ;
}
//Kicker 3
switch ( fourthPart ) {
2007-03-17 12:02:28 +00:00
case 12 : cardString << ", Ace kicker" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 11 : cardString << ", King kicker" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 10 : cardString << ", Queen kicker" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 9 : cardString << ", Jack kicker" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 8 : cardString << ", Ten kicker" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 7 : cardString << ", Nine kicker" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 6 : cardString << ", Eight kicker" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 5 : cardString << ", Seven kicker" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 4 : cardString << ", Six kicker" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 3 : cardString << ", Five kicker" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 2 : cardString << ", Four kicker" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 1 : cardString << ", Three kicker" ;
2007-02-14 01:09:31 +00:00
break ;
default : cardString << "ERROR" ;
}
//Kicker 4
switch ( fifthPartA ) {
2007-03-17 12:02:28 +00:00
case 9 : cardString << ", Jack kicker" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 8 : cardString << ", Ten kicker" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 7 : cardString << ", Nine kicker" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 6 : cardString << ", Eight kicker" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 5 : cardString << ", Seven kicker" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 4 : cardString << ", Six kicker" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 3 : cardString << ", Five kicker" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 2 : cardString << ", Four kicker" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 1 : cardString << ", Three kicker" ;
2007-02-14 01:09:31 +00:00
break ;
default : cardString << "ERROR" ;
}
//Kicker 5
switch ( fifthPartB ) {
2007-03-17 12:02:28 +00:00
case 9 : cardString << ", Jack kicker" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 8 : cardString << ", Ten kicker" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 7 : cardString << ", Nine kicker" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 6 : cardString << ", Eight kicker" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 5 : cardString << ", Seven kicker" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 4 : cardString << ", Six kicker" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 3 : cardString << ", Five kicker" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 2 : cardString << ", Four kicker" ;
2007-02-14 01:09:31 +00:00
break ;
2007-03-17 12:02:28 +00:00
case 1 : cardString << ", Three kicker" ;
2007-02-14 01:09:31 +00:00
break ;
default : cardString << "ERROR" ;
}
}
break ;
default : cardString << "ERROR" ;
}
return cardString ;
}
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
}