Files
pokerth/src/engine/local_engine/localplayer.h
T

215 lines
6.7 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. *
***************************************************************************/
#ifndef LOCALPLAYER_H
#define LOCALPLAYER_H
#include <playerinterface.h>
2007-03-06 00:50:35 +00:00
#include <boost/shared_ptr.hpp>
2007-01-13 02:40:33 +00:00
#include <string>
class CardsValue;
class ConfigFile;
2007-01-14 12:15:45 +00:00
class HandInterface;
2007-01-13 22:29:17 +00:00
class BoardInterface;
2007-01-13 02:40:33 +00:00
2007-01-13 22:29:17 +00:00
class LocalPlayer : public PlayerInterface{
2007-01-13 02:40:33 +00:00
public:
2007-05-13 18:17:25 +00:00
LocalPlayer(ConfigFile*, BoardInterface *b, int id, unsigned uniqueId, PlayerType type, std::string name, std::string avatar, int sC, bool aS, int mB);
2007-01-13 02:40:33 +00:00
~LocalPlayer();
2007-01-13 02:40:33 +00:00
2007-01-14 12:15:45 +00:00
void setHand(HandInterface*);
2007-01-13 02:40:33 +00:00
int getMyID() const { return myID; }
unsigned getMyUniqueID() const { return myUniqueID; }
PlayerType getMyType() const { return myType; }
2007-01-13 02:40:33 +00:00
void setMyDude(int theValue) { myDude = theValue; }
2007-01-13 02:40:33 +00:00
int getMyDude() const { return myDude; }
void setMyDude4(int theValue) { myDude4 = theValue; }
2007-04-03 10:55:16 +00:00
int getMyDude4() const { return myDude4; }
2007-01-13 02:40:33 +00:00
void setMyName(const std::string& theValue) { myName = theValue; }
std::string getMyName() const { return myName; }
2007-03-29 00:15:43 +00:00
void setMyAvatar(const std::string& theValue) { myAvatar = theValue; }
std::string getMyAvatar() const { return myAvatar; }
void setMyCash(int theValue) { myCash = theValue; }
2007-01-13 02:40:33 +00:00
int getMyCash() const { return myCash; }
void setMySet(int theValue) { myLastRelativeSet = theValue; mySet += theValue; myCash -= theValue; }
void setMySetAbsolute(int theValue) { mySet = theValue; }
2007-05-25 19:53:07 +00:00
void setMySetNull() { mySet = 0; myLastRelativeSet = 0; }
2007-01-13 02:40:33 +00:00
int getMySet() const { return mySet;}
int getMyLastRelativeSet() const { return myLastRelativeSet; }
2007-01-13 02:40:33 +00:00
2007-06-05 21:20:32 +00:00
void setMyAction(int theValue, bool blind = 0) {
2007-05-26 12:40:45 +00:00
myAction = theValue;
// logging for human player
2007-06-05 21:20:32 +00:00
if(myAction && !blind) actualHand->getGuiInterface()->logPlayerActionMsg(myName, myAction, mySet);
2007-05-26 12:40:45 +00:00
}
2007-01-13 02:40:33 +00:00
int getMyAction() const { return myAction; }
void setMyButton(int theValue) { myButton = theValue; }
2007-01-13 02:40:33 +00:00
int getMyButton() const { return myButton; }
void setMyActiveStatus(bool theValue) { myActiveStatus = theValue; }
bool getMyActiveStatus() const { return myActiveStatus; }
void setMyCards(int* theValue) { int i; for(i=0; i<2; i++) myCards[i] = theValue[i]; }
void getMyCards(int* theValue) { int i; for(i=0; i<2; i++) theValue[i] = myCards[i]; }
void setMyTurn(bool theValue){ myTurn = theValue;}
bool getMyTurn() const{ return myTurn;}
2007-05-29 13:15:58 +00:00
void setMyCardsFlip(bool theValue, int state){
myCardsFlip = theValue;
// log flipping cards
if(myCardsFlip) {
switch(state) {
case 1: actualHand->getGuiInterface()->logFlipHoleCardsMsg(myName, myCards[0], myCards[1], myCardsValueInt);
break;
case 2: actualHand->getGuiInterface()->logFlipHoleCardsMsg(myName, myCards[0], myCards[1]);
break;
case 3: actualHand->getGuiInterface()->logFlipHoleCardsMsg(myName, myCards[0], myCards[1], myCardsValueInt, "has");
break;
default: ;
}
}
}
2007-02-28 20:51:43 +00:00
bool getMyCardsFlip() const{ return myCardsFlip;}
void setMyCardsValueInt(int theValue) { myCardsValueInt = theValue;}
2007-01-13 02:40:33 +00:00
int getMyCardsValueInt() const { return myCardsValueInt; }
2007-01-28 00:17:49 +00:00
int* getMyBestHandPosition() { return myBestHandPosition; }
void setMyRoundStartCash(int theValue) { myRoundStartCash = theValue;}
2007-01-13 02:40:33 +00:00
int getMyRoundStartCash() const { return myRoundStartCash; }
void setMyAverageSets(int theValue) { myAverageSets[0] = myAverageSets[1]; myAverageSets[1] = myAverageSets[2]; myAverageSets[2] = myAverageSets[3]; myAverageSets[3] = theValue; }
2007-03-09 03:53:39 +00:00
int getMyAverageSets() const { return (myAverageSets[0]+myAverageSets[1]+myAverageSets[2]+myAverageSets[3])/4; }
2007-01-13 02:40:33 +00:00
void setMyAggressive(bool theValue) {
2007-03-24 00:40:22 +00:00
int i;
2007-03-28 17:44:22 +00:00
for(i=0; i<6; i++) {
2007-03-24 00:40:22 +00:00
myAggressive[i] = myAggressive[i+1];
}
2007-03-28 17:44:22 +00:00
myAggressive[6] = theValue;
2007-03-24 00:40:22 +00:00
}
int getMyAggressive() const {
int i, sum = 0;
2007-03-28 17:44:22 +00:00
for(i=0; i<7; i++) {
2007-03-24 00:40:22 +00:00
sum += myAggressive[i];
}
return sum;
}
2007-03-30 12:44:16 +00:00
void setSBluff ( int theValue ) { sBluff = theValue; }
int getSBluff() const { return sBluff; }
2007-03-30 13:03:04 +00:00
void setSBluffStatus ( bool theValue ) { sBluffStatus = theValue; }
bool getSBluffStatus() const { return sBluffStatus; }
2007-05-29 13:15:58 +00:00
void setMyWinnerState ( bool theValue, int pot ) {
myWinnerState = theValue;
if(theValue) actualHand->getGuiInterface()->logPlayerWinsMsg(myID, pot);
}
bool getMyWinnerState() const { return myWinnerState;}
2007-01-13 02:40:33 +00:00
void action();
void preflopEngine();
void flopEngine();
void turnEngine();
void riverEngine();
2007-03-27 17:16:25 +00:00
void preflopEngine3();
void flopEngine3();
void turnEngine3();
void riverEngine3();
int preflopCardsValue(int*);
2007-03-22 23:19:16 +00:00
int flopCardsValue(int*);
2007-03-18 00:14:09 +00:00
int turnCardsValue(int*);
2007-03-17 21:33:46 +00:00
2007-03-27 17:16:25 +00:00
void readFile();
2007-03-27 21:36:56 +00:00
void evaluation(int, int);
2007-03-30 13:03:04 +00:00
void setNetSessionData(boost::shared_ptr<SessionData> session);
boost::shared_ptr<SessionData> getNetSessionData();
2007-01-13 02:40:33 +00:00
2007-05-29 13:15:58 +00:00
2007-01-13 02:40:33 +00:00
private:
2007-05-13 18:17:25 +00:00
ConfigFile *myConfig;
2007-01-14 12:15:45 +00:00
HandInterface *actualHand;
2007-01-13 22:29:17 +00:00
BoardInterface *actualBoard;
2007-04-20 23:14:08 +00:00
2007-01-13 02:40:33 +00:00
CardsValue *myCardsValue;
// Konstanten
int myID;
unsigned myUniqueID;
PlayerType myType;
2007-01-13 02:40:33 +00:00
std::string myName;
2007-03-29 00:15:43 +00:00
std::string myAvatar;
2007-01-19 19:13:59 +00:00
int myDude;
2007-03-06 00:50:35 +00:00
int myDude4;
2007-01-19 19:13:59 +00:00
2007-01-13 02:40:33 +00:00
// Laufvariablen
int myCardsValueInt;
2007-01-28 00:17:49 +00:00
int myBestHandPosition[5];
2007-03-27 17:16:25 +00:00
double myOdds;
2007-03-06 00:50:35 +00:00
int myNiveau[3];
int myCards[2];
2007-01-13 02:40:33 +00:00
int myCash;
int mySet;
int myLastRelativeSet;
2007-01-13 02:40:33 +00:00
int myAction; // 0 = none, 1 = fold, 2 = check, 3 = call, 4 = bet, 5 = raise, 6 = allin
int myButton; // 0 = none, 1 = dealer, 2 =small, 3 = big
bool myActiveStatus; // 0 = inactive, 1 = active
bool myTurn; // 0 = no, 1 = yes
2007-02-28 20:51:43 +00:00
bool myCardsFlip; // 0 = cards are not fliped, 1 = cards are already flipped,
2007-01-13 02:40:33 +00:00
int myRoundStartCash;
2007-03-09 03:53:39 +00:00
int myAverageSets[4];
2007-03-28 17:44:22 +00:00
bool myAggressive[7];
2007-01-13 02:40:33 +00:00
2007-03-30 12:44:16 +00:00
int sBluff;
2007-03-30 13:03:04 +00:00
bool sBluffStatus;
2007-05-29 13:15:58 +00:00
bool myWinnerState;
2007-03-30 12:44:16 +00:00
boost::shared_ptr<SessionData> myNetSessionData;
2007-01-13 02:40:33 +00:00
};
#endif