Files
pokerth/src/gui/qt/mainwindow/log/log.cpp
T

1701 lines
47 KiB
C++
Raw Normal View History

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"
#include <handinterface.h>
#include <session.h>
#include <game.h>
#include <game_defs.h>
2007-01-13 02:40:33 +00:00
using namespace std;
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
connect(this, SIGNAL(signalLogPlayerActionMsg(QString, int, int)), this, SLOT(logPlayerActionMsg(QString, int, int)));
connect(this, SIGNAL(signalLogNewGameHandMsg(int, int)), this, SLOT(logNewGameHandMsg(int, int)));
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)));
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-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";
2007-06-11 10:51:56 +00:00
stream << "<h3><b>Log-File for PokerTH 0.5 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
}
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>####################&#160;&#160;&#160;Game: "+QString::number(gameID,10)+" | Hand: "+QString::number(handID,10)+"&#160;&#160;&#160;####################</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();
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
HandInterface *currentHand = myW->getSession().getCurrentGame()->getCurrentHand();
2007-05-15 21:22:16 +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-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-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-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-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-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) {
size_t i;
list<int> shownCardsValueInt;
list<int> sameHandCardsValueInt;
bool different = false;
bool equal = false;
2007-09-02 18:35:39 +00:00
// collect cardsValueInt of all players who will show their cards
2007-09-03 13:56:31 +00:00
HandInterface *currentHand = myW->getSession().getCurrentGame()->getCurrentHand();
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());
}
}
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
// same hand detection
for(it = shownCardsValueInt.begin(); it != shownCardsValueInt.end(); it++) {
if(((*it)/1000000) == (myCardsValueInt/1000000)) {
sameHandCardsValueInt.push_back(*it);
}
}
// 1.same hands existing
if(!(sameHandCardsValueInt.empty())) {
// first kicker?
for(it = sameHandCardsValueInt.begin(); it != sameHandCardsValueInt.end(); it++) {
if(((*it)/10000) == (myCardsValueInt/10000)) {
equal = true;
} else {
different = true;
sameHandCardsValueInt.erase(it);
// last list element ?
if(sameHandCardsValueInt.empty()) {
break;
}
}
}
if(different) {
handName += ", fifth card " + translateCardsValueCode(myCardsValueInt).at(2);
}
}
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
// same hand detection
for(it = shownCardsValueInt.begin(); it != shownCardsValueInt.end(); it++) {
if(((*it)/1000000) == (myCardsValueInt/1000000)) {
sameHandCardsValueInt.push_back(*it);
}
}
// 1.same hands existing
if(!(sameHandCardsValueInt.empty())) {
// first kicker?
for(it = sameHandCardsValueInt.begin(); it != sameHandCardsValueInt.end(); it++) {
if(((*it)/10000) == (myCardsValueInt/10000)) {
equal = true;
} else {
different = true;
sameHandCardsValueInt.erase(it);
// last list element ?
if(sameHandCardsValueInt.empty()) {
break;
}
}
}
if(different) {
handName += ", second card " + translateCardsValueCode(myCardsValueInt).at(2);
}
// 2.there are still same hands
if(equal) {
different = false;
equal = false;
// second kicker?
for(it = sameHandCardsValueInt.begin(); it != sameHandCardsValueInt.end(); it++) {
if(((*it)/100) == (myCardsValueInt/100)) {
equal = true;
} else {
different = true;
sameHandCardsValueInt.erase(it);
// last list element ?
if(sameHandCardsValueInt.empty()) {
break;
}
}
}
if(different) {
handName += ", third card " + translateCardsValueCode(myCardsValueInt).at(3);
}
// 3.there are still same hands
if(equal) {
different = false;
equal = false;
// third kicker?
for(it = sameHandCardsValueInt.begin(); it != sameHandCardsValueInt.end(); it++) {
if(((*it)/10) == (myCardsValueInt/10)) {
equal = true;
} else {
different = true;
sameHandCardsValueInt.erase(it);
// last list element ?
if(sameHandCardsValueInt.empty()) {
break;
}
}
}
if(different) {
handName += ", fourth card " + translateCardsValueCode(myCardsValueInt).at(4);
}
// 4.there are still same hands
if(equal) {
different = false;
equal = false;
// third kicker?
for(it = sameHandCardsValueInt.begin(); it != sameHandCardsValueInt.end(); it++) {
if((*it) == myCardsValueInt) {
equal = true;
} else {
different = true;
sameHandCardsValueInt.erase(it);
// last list element ?
if(sameHandCardsValueInt.empty()) {
break;
}
}
}
if(different) {
handName += ", fifth card " + translateCardsValueCode(myCardsValueInt).at(5);
}
}
}
}
}
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
// same hand detection
for(it = shownCardsValueInt.begin(); it != shownCardsValueInt.end(); it++) {
if(((*it)/1000000) == (myCardsValueInt/1000000)) {
sameHandCardsValueInt.push_back(*it);
}
}
// 1.same hands existing
if(!(sameHandCardsValueInt.empty())) {
// first kicker?
for(it = sameHandCardsValueInt.begin(); it != sameHandCardsValueInt.end(); it++) {
if(((*it)/10000) == (myCardsValueInt/10000)) {
equal = true;
} else {
different = true;
sameHandCardsValueInt.erase(it);
// last list element ?
if(sameHandCardsValueInt.empty()) {
break;
}
}
}
if(different) {
handName += ", fourth card " + translateCardsValueCode(myCardsValueInt).at(2);
}
// 2.there are still same hands
if(equal) {
different = false;
equal = false;
// second kicker?
for(it = sameHandCardsValueInt.begin(); it != sameHandCardsValueInt.end(); it++) {
if(((*it)/100) == (myCardsValueInt/100)) {
equal = true;
} else {
different = true;
sameHandCardsValueInt.erase(it);
// last list element ?
if(sameHandCardsValueInt.empty()) {
break;
}
}
}
if(different) {
handName += ", fifth card " + translateCardsValueCode(myCardsValueInt).at(3);
}
}
}
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
// same hand detection
for(it = shownCardsValueInt.begin(); it != shownCardsValueInt.end(); it++) {
if(((*it)/10000) == (myCardsValueInt/10000)) {
sameHandCardsValueInt.push_back(*it);
}
}
// 1.same hands existing
if(!(sameHandCardsValueInt.empty())) {
// first kicker?
for(it = sameHandCardsValueInt.begin(); it != sameHandCardsValueInt.end(); it++) {
if(((*it)/100) == (myCardsValueInt/100)) {
equal = true;
} else {
different = true;
sameHandCardsValueInt.erase(it);
// last list element ?
if(sameHandCardsValueInt.empty()) {
break;
}
}
}
if(different) {
handName += ", fifth card " + translateCardsValueCode(myCardsValueInt).at(3);
}
}
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
// same hand detection
for(it = shownCardsValueInt.begin(); it != shownCardsValueInt.end(); it++) {
if(((*it)/1000000) == (myCardsValueInt/1000000)) {
sameHandCardsValueInt.push_back(*it);
}
}
// 1.same hands existing
if(!(sameHandCardsValueInt.empty())) {
// first kicker?
for(it = sameHandCardsValueInt.begin(); it != sameHandCardsValueInt.end(); it++) {
if(((*it)/10000) == (myCardsValueInt/10000)) {
equal = true;
} else {
different = true;
sameHandCardsValueInt.erase(it);
// last list element ?
if(sameHandCardsValueInt.empty()) {
break;
}
}
}
if(different) {
handName += ", third card " + translateCardsValueCode(myCardsValueInt).at(2);
}
// 2.there are still same hands
if(equal) {
different = false;
equal = false;
// second kicker?
for(it = sameHandCardsValueInt.begin(); it != sameHandCardsValueInt.end(); it++) {
if(((*it)/100) == (myCardsValueInt/100)) {
equal = true;
} else {
different = true;
sameHandCardsValueInt.erase(it);
// last list element ?
if(sameHandCardsValueInt.empty()) {
break;
}
}
}
if(different) {
handName += ", fourth card " + translateCardsValueCode(myCardsValueInt).at(3);
}
// 3.there are still same hands
if(equal) {
different = false;
equal = false;
// third kicker?
for(it = sameHandCardsValueInt.begin(); it != sameHandCardsValueInt.end(); it++) {
if((*it) == myCardsValueInt) {
equal = true;
} else {
different = true;
sameHandCardsValueInt.erase(it);
// last list element ?
if(sameHandCardsValueInt.empty()) {
break;
}
}
}
if(different) {
handName += ", fifth card " + translateCardsValueCode(myCardsValueInt).at(4);
}
}
}
}
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);
// same hand detection
for(it = shownCardsValueInt.begin(); it != shownCardsValueInt.end(); it++) {
if(((*it)/1000000) == (myCardsValueInt/1000000)) {
sameHandCardsValueInt.push_back(*it);
}
}
// 1.same hands existing
if(!(sameHandCardsValueInt.empty())) {
// first kicker?
for(it = sameHandCardsValueInt.begin(); it != sameHandCardsValueInt.end(); it++) {
if(((*it)/10000) == (myCardsValueInt/10000)) {
equal = true;
} else {
different = true;
sameHandCardsValueInt.erase(it);
// last list element ?
if(sameHandCardsValueInt.empty()) {
break;
}
}
}
if(different) {
handName += ", second card " + translateCardsValueCode(myCardsValueInt).at(2);
}
// 2.there are still same hands
if(equal) {
different = false;
equal = false;
// second kicker?
for(it = sameHandCardsValueInt.begin(); it != sameHandCardsValueInt.end(); it++) {
if(((*it)/100) == (myCardsValueInt/100)) {
equal = true;
} else {
different = true;
sameHandCardsValueInt.erase(it);
// last list element ?
if(sameHandCardsValueInt.empty()) {
break;
}
}
}
if(different) {
handName += ", third card " + translateCardsValueCode(myCardsValueInt).at(3);
}
// 3.there are still same hands
if(equal) {
different = false;
equal = false;
// third kicker?
for(it = sameHandCardsValueInt.begin(); it != sameHandCardsValueInt.end(); it++) {
if(((*it)/10) == (myCardsValueInt/10)) {
equal = true;
} else {
different = true;
sameHandCardsValueInt.erase(it);
// last list element ?
if(sameHandCardsValueInt.empty()) {
break;
}
}
}
if(different) {
handName += ", fourth card " + translateCardsValueCode(myCardsValueInt).at(4);
}
// 4.there are still same hands
if(equal) {
different = false;
equal = false;
// third kicker?
for(it = sameHandCardsValueInt.begin(); it != sameHandCardsValueInt.end(); it++) {
if((*it) == myCardsValueInt) {
equal = true;
} else {
different = true;
sameHandCardsValueInt.erase(it);
// last list element ?
if(sameHandCardsValueInt.empty()) {
break;
}
}
}
if(different) {
handName += ", fifth card " + translateCardsValueCode(myCardsValueInt).at(5);
}
}
}
}
}
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) {
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
}