ps:这不是决赛的版本,部分参数和决赛不一样,但基本差不多(决赛的版本不见了)
//>4人
void HoldAISeatNumberMore5(int mHoldWeight)
{
int mrasiepeople = getRaisePeopleNumber();
if (myPosition == 1)
{
if (HoldWheel == 1)
{
HoldWheelOneButtonSeatNumberMore5(mHoldWeight, mrasiepeople);
}
else if (HoldWheel == 2)
{
HoldWheelTwoSeatNumberMore5(mHoldWeight, mrasiepeople);
}
else
{
HoldWheelThreeSeatNumberMore5(mHoldWeight);
}
}
else if (myPosition == 2)
{
if (HoldWheel == 1)
{
HoldWheelOneSBSeatNumberMore5(mHoldWeight, mrasiepeople);
}
else if (HoldWheel == 2)
{
HoldWheelTwoSeatNumberMore5(mHoldWeight, mrasiepeople);
}
else
{
HoldWheelThreeSeatNumberMore5(mHoldWeight);
}
}
else if (myPosition == 3)
{
if (HoldWheel == 1)
{
HoldWheelOneBBSeatNumberMore5(mHoldWeight, mrasiepeople);
}
else if (HoldWheel == 2)
{
HoldWheelTwoSeatNumberMore5(mHoldWeight, mrasiepeople);
}
else
{
HoldWheelThreeSeatNumberMore5(mHoldWeight);
}
}
else if (myPosition == 4)
{
if (HoldWheel == 1)
{
HoldWheelOneBBNextSeatNumberMore5(mHoldWeight);
}
else if (HoldWheel == 2)
{
HoldWheelTwoSeatNumberMore5(mHoldWeight, mrasiepeople);
}
else
{
HoldWheelThreeSeatNumberMore5(mHoldWeight);
}
}
else if (myPosition == seatNumber)
{
if (HoldWheel == 1)
{
HoldWheelOneBeforeButtonSeatNumberMore5(mHoldWeight, mrasiepeople);
}
else if (HoldWheel == 2)
{
HoldWheelTwoSeatNumberMore5(mHoldWeight, mrasiepeople);
}
else
{
HoldWheelThreeSeatNumberMore5(mHoldWeight);
}
}
else
{
if (HoldWheel == 1)
{
HoldWheelOneOtherSeatNumberMore5(mHoldWeight, mrasiepeople);
}
else if (HoldWheel == 2)
{
HoldWheelTwoSeatNumberMore5(mHoldWeight, mrasiepeople);
}
else
{
HoldWheelThreeSeatNumberMore5(mHoldWeight);
}
}
}
void HoldWheelOneButtonSeatNumberMore5(int mHoldWeight, int mRaisePeople)
{
long mtopMoney = getMyTopMoney(mHoldWeight);
long mHoldRank = getMyHoldCardRank(mHoldWeight);
long mMyBet = getMyBet();
long RaiseMoneyOne = -1;
if (mRaisePeople == 0) //0人加注
{
if (mHoldRank >= 8) //大牌跟住
snprintf(reg_msg, sizeof(reg_msg)-1, "call \n");
else if (mHoldRank >= 7)
{
RaiseMoneyOne = RaiseMoneyMore2BB();
snprintf(reg_msg, sizeof(reg_msg)-1, "raise %d \n", RaiseMoneyOne);
}
else if (mHoldRank >= 4)
{
snprintf(reg_msg, sizeof(reg_msg)-1, "call \n");
}
else
{
snprintf(reg_msg, sizeof(reg_msg)-1, "fold \n");
}
}
else if (mRaisePeople == 1)//1人加注
{
if (mHoldRank >= 10)
{
if (callmoney >= mtopMoney)
{
snprintf(reg_msg, sizeof(reg_msg)-1, "call \n");
}
else
{
if (callmoney + mMyBet<mtopMoney)
{
//RaiseMoneyOne=RaiseMoneyMore1BB();
snprintf(reg_msg, sizeof(reg_msg)-1, "raise %d \n", callmoney);
}
else
{
snprintf(reg_msg, sizeof(reg_msg)-1, "call \n");
}
}
}
else if (mHoldRank >= 8) //至少不会弃牌
{
if (callmoney >= mtopMoney)
{
snprintf(reg_msg, sizeof(reg_msg)-1, "fold \n");
}
else
{
if (callmoney + mMyBet<mtopMoney)
{
RaiseMoneyOne = RaiseMoneyMore1BB();
snprintf(reg_msg, sizeof(reg_msg)-1, "raise %d \n", RaiseMoneyOne);
}
else
{
snprintf(reg_msg, sizeof(reg_msg)-1, "call \n");
}
}
}
else if (mHoldRank >= 5) //除非对方加大注,否则不会弃牌,yuan 4
{
if (callmoney >= mtopMoney)
{
snprintf(reg_msg, sizeof(reg_msg)-1, "fold \n");
}
else
{
if (callmoney + mMyBet<mtopMoney)
{
RaiseMoneyOne = RaiseMoneyMore1BB();
snprintf(reg_msg, sizeof(reg_msg)-1, "raise %d \n", RaiseMoneyOne);
}
else
{
snprintf(reg_msg, sizeof(reg_msg)-1, "call \n");
}
}
}
else
{
snprintf(reg_msg, sizeof(reg_msg)-1, "fold \n");
}
}
else //if(mRaisePeople>=2) //2人加注
{
if (mHoldRank >= 7)
{
if (callmoney <= mtopMoney)
snprintf(reg_msg, sizeof(reg_msg)-1, "call \n");
else
snprintf(reg_msg, sizeof(reg_msg)-1, "fold \n");
}
else
{
snprintf(reg_msg, sizeof(reg_msg)-1, "fold \n");
}
}
}
void HoldWheelOneSBSeatNumberMore5(int mHoldWeight, int mRaisePeople)
{
long mtopMoney = getMyTopMoney(mHoldWeight);
long mHoldRank = getMyHoldCardRank(mHoldWeight);
long mMyBet = getMyBet();
long RaiseMoneyOne = -1;
if (mRaisePeople == 0) //0人加注
{
if (mHoldRank >= 8) //大牌跟住
snprintf(reg_msg, sizeof(reg_msg)-1, "call \n");
else if (mHoldRank >= 5)
{
RaiseMoneyOne = RaiseMoneyMore2BB();
snprintf(reg_msg, sizeof(reg_msg)-1, "raise %d \n", RaiseMoneyOne);
}
else if (mHoldRank >= 3)
{
snprintf(reg_msg, sizeof(reg_msg)-1, "call \n");
}
else
{
snprintf(reg_msg, sizeof(reg_msg)-1, "fold \n");
}
}
else if (mRaisePeople == 1)//1人加注
{
if (mHoldRank >= 10)
{
if (callmoney >= mtopMoney)
{
snprintf(reg_msg, sizeof(reg_msg)-1, "call \n");
}
else
{
if (callmoney + mMyBet<mtopMoney / 2)
{
RaiseMoneyOne = RaiseMoneyMore1BB();
snprintf(reg_msg, sizeof(reg_msg)-1, "raise %d \n", RaiseMoneyOne);
}
else
{
snprintf(reg_msg, sizeof(reg_msg)-1, "call \n");
}
}
}
else if (mHoldRank >= 8) //
{
if (callmoney >= mtopMoney)
{
snprintf(reg_msg, sizeof(reg_msg)-1, "fold \n");
}
else
{
if (callmoney + mMyBet<mtopMoney / 2)
{
RaiseMoneyOne = RaiseMoneyMore1BB();
snprintf(reg_msg, sizeof(reg_msg)-1, "raise %d \n", RaiseMoneyOne);
}
else
{
snprintf(reg_msg, sizeof(reg_msg)-1, "call \n");
}
}
}
else if (mHoldRank >= 5) //除非对方加大注,否则不会弃牌,yuan 4
{
if (callmoney >= mtopMoney)
{
snprintf(reg_msg, sizeof(reg_msg)-1, "fold \n");
}
else
{
if (callmoney + mMyBet<mtopMoney / 2)
{
RaiseMoneyOne = RaiseMoneyMore1BB();
snprintf(reg_msg, sizeof(reg_msg)-1, "raise %d \n", RaiseMoneyOne);
}
else
{
snprintf(reg_msg, sizeof(reg_msg)-1, "call \n");
}
}
}
else
{
snprintf(reg_msg, sizeof(reg_msg)-1, "fold \n");
}
}
else //if(mRaisePeople>=2) //2人加注
{
if (mHoldRank >= 10)
{
snprintf(reg_msg, sizeof(reg_msg)-1, "call \n");
}
else if (mHoldRank >= 8)
{
if (callmoney>BB * 3)
snprintf(reg_msg, sizeof(reg_msg)-1, "fold \n");
else
snprintf(reg_msg, sizeof(reg_msg)-1, "call \n");
}
else
{
snprintf(reg_msg, sizeof(reg_msg)-1, "fold \n");
}
}
}
void HoldWheelOneBBSeatNumberMore5(int mHoldWeight, int mRaisePeople)
{
long mtopMoney = getMyTopMoney(mHoldWeight);
long mHoldRank = getMyHoldCardRank(mHoldWeight);
long mMyBet = getMyBet();
long RaiseMoneyOne = -1;
if (seatNumber - foldnum == 1)
{
snprintf(reg_msg, sizeof(reg_msg)-1, "call \n");
}
else if (mRaisePeople == 0) //0人加注
{
if (mHoldRank >= 8)
{
RaiseMoneyOne = RaiseMoneyMore2BB();
snprintf(reg_msg, sizeof(reg_msg)-1, "raise %d \n", RaiseMoneyOne);
}
else if (mHoldRank >= 5)
{
RaiseMoneyOne = RaiseMoneyMore4BB();
snprintf(reg_msg, sizeof(reg_msg)-1, "raise %d \n", RaiseMoneyOne);
}
else
{
snprintf(reg_msg, sizeof(reg_msg)-1, "check \n");
}
}
else if (mRaisePeople == 1)//1人加注
{
if (mHoldRank >= 10)
{
if (callmoney >= mtopMoney)
{
snprintf(reg_msg, sizeof(reg_msg)-1, "call \n");
}
else
{
if (callmoney + mMyBet<mtopMoney / 2)
{
RaiseMoneyOne = RaiseMoneyMore1BB();
snprintf(reg_msg, sizeof(reg_msg)-1, "raise %d \n", RaiseMoneyOne);
}
else
{
snprintf(reg_msg, sizeof(reg_msg)-1, "call \n");
}
}
}
else if (mHoldRank >= 7) //至少不会弃牌
{
if (callmoney >= mtopMoney)
{
snprintf(reg_msg, sizeof(reg_msg)-1, "fold \n");
}
else
{
if (callmoney + mMyBet<mtopMoney / 2)
{
RaiseMoneyOne = RaiseMoneyMore1BB();
snprintf(reg_msg, sizeof(reg_msg)-1, "raise %d \n", RaiseMoneyOne);
}
else
{
snprintf(reg_msg, sizeof(reg_msg)-1, "call \n");
}
}
}
else if (mHoldRank >= 4) //除非对方加大注,否则不会弃牌
{
if (callmoney >= mtopMoney)
{
snprintf(reg_msg, sizeof(reg_msg)-1, "fold \n");
}
else
{
/*if (callmoney + mMyBet<mtopMoney / 2)
{
RaiseMoneyOne = RaiseMoneyMore1BB();
snprintf(reg_msg, sizeof(reg_msg)-1, "raise %d \n", RaiseMoneyOne);
}
else*/
{
snprintf(reg_msg, sizeof(reg_msg)-1, "call \n");
}
}
}
else
{
snprintf(reg_msg, sizeof(reg_msg)-1, "fold \n");
}
}
else //if(mRaisePeople>=2) //2人加注
{
if (mHoldRank >= 10)
{
snprintf(reg_msg, sizeof(reg_msg)-1, "call \n");
}
else if (mHoldRank >= 8)
{
if (callmoney >= mtopMoney / 2)
snprintf(reg_msg, sizeof(reg_msg)-1, "fold \n");
else
snprintf(reg_msg, sizeof(reg_msg)-1, "call \n");
}
else
{
snprintf(reg_msg, sizeof(reg_msg)-1, "fold \n");
}
}
}
void HoldWheelOneBBNextSeatNumberMore5(int mHoldWeight)
{
long mHoldRank = getMyHoldCardRank(mHoldWeight);
long RaiseMoneyOne = -1;
if (mHoldRank >= 10)
snprintf(reg_msg, sizeof(reg_msg)-1, "call \n");
else if (mHoldRank >= seatnum) //加多点
{
RaiseMoneyOne = RaiseMoneyMore4BB();
snprintf(reg_msg, sizeof(reg_msg)-1, "raise %d \n", RaiseMoneyOne);
}
else
{
snprintf(reg_msg, sizeof(reg_msg)-1, "fold \n");
}
}
void HoldWheelOneBeforeButtonSeatNumberMore5(int mHoldWeight, int mRaisePeople)
{
long mtopMoney = getMyTopMoney(mHoldWeight);
long mHoldRank = getMyHoldCardRank(mHoldWeight);
long mMyBet = getMyBet();
long RaiseMoneyOne = -1;
if (mRaisePeople == 0) //0人加注
{
if (mHoldRank >= 8) //大牌跟住
snprintf(reg_msg, sizeof(reg_msg)-1, "call \n");
else if (mHoldRank >= 6)
{
RaiseMoneyOne = RaiseMoneyMore2BB();
snprintf(reg_msg, sizeof(reg_msg)-1, "raise %d \n", RaiseMoneyOne);
}
else
{
snprintf(reg_msg, sizeof(reg_msg)-1, "fold \n");
}
}
else if (mRaisePeople == 1)//1人加注
{
if (mHoldRank >= 10)
{
if (callmoney >= mtopMoney)
{
snprintf(reg_msg, sizeof(reg_msg)-1, "call \n");
}
else
{
if (callmoney + mMyBet<mtopMoney / 2)
{
//RaiseMoneyOne=RaiseMoneyMore1BB();
snprintf(reg_msg, sizeof(reg_msg)-1, "raise %d \n", callmoney);
}
else
{
snprintf(reg_msg, sizeof(reg_msg)-1, "call \n");
}
}
}
else if (mHoldRank >= 8) //至少不会弃牌
{
if (callmoney >= mtopMoney)
{
snprintf(reg_msg, sizeof(reg_msg)-1, "fold \n");
}
else
{
if (callmoney + mMyBet<mtopMoney / 2)
{
RaiseMoneyOne = RaiseMoneyMore1BB();
snprintf(reg_msg, sizeof(reg_msg)-1, "raise %d \n", RaiseMoneyOne);
}
else
{
snprintf(reg_msg, sizeof(reg_msg)-1, "call \n");
}
}
}
else if (mHoldRank >= 6) //除非对方加大注,否则不会弃牌,yuan 5
{
if (callmoney >= mtopMoney)
{
snprintf(reg_msg, sizeof(reg_msg)-1, "fold \n");
}
else
{
if (callmoney + mMyBet<mtopMoney / 2)
{
RaiseMoneyOne = RaiseMoneyMore1BB();
snprintf(reg_msg, sizeof(reg_msg)-1, "raise %d \n", RaiseMoneyOne);
}
else
{
snprintf(reg_msg, sizeof(reg_msg)-1, "call \n");
}
}
}
else
{
snprintf(reg_msg, sizeof(reg_msg)-1, "fold \n");
}
}
else //if(mRaisePeople>=2) //2人加注
{
if (mHoldRank >= 10)
{
if (callmoney >= 20 * BB&&mHoldWeight != 40)
snprintf(reg_msg, sizeof(reg_msg)-1, "fold \n");
else
snprintf(reg_msg, sizeof(reg_msg)-1, "call \n");
}
else
{
snprintf(reg_msg, sizeof(reg_msg)-1, "fold \n");
}
}
}
void HoldWheelOneOtherSeatNumberMore5(int mHoldWeight, int mRaisePeople)
{
long mtopMoney = getMyTopMoney(mHoldWeight);
long mHoldRank = getMyHoldCardRank(mHoldWeight);
long mMyBet = getMyBet();
long RaiseMoneyOne = -1;
if (mRaisePeople == 0) //0人加注
{
if (mHoldRank >= 9) //大牌跟住
snprintf(reg_msg, sizeof(reg_msg)-1, "call \n");
else if (mHoldRank >= 7)
{
RaiseMoneyOne = RaiseMoneyMore2BB();
snprintf(reg_msg, sizeof(reg_msg)-1, "raise %d \n", RaiseMoneyOne);
}
else
{
snprintf(reg_msg, sizeof(reg_msg)-1, "fold \n");
}
}
else if (mRaisePeople == 1)//1人加注
{
if (mHoldRank >= 11) //至少不会弃牌
{
if (callmoney >= mtopMoney)
{
snprintf(reg_msg, sizeof(reg_msg)-1, "call \n");
}
else
{
if (callmoney + mMyBet<mtopMoney / 2)
{
RaiseMoneyOne = RaiseMoneyMore1BB();
snprintf(reg_msg, sizeof(reg_msg)-1, "raise %d \n", RaiseMoneyOne);
}
else
{
snprintf(reg_msg, sizeof(reg_msg)-1, "call \n");
}
}
}
else if (mHoldRank >= 7) //除非对方加大注,否则不会弃牌
{
if (callmoney >= mtopMoney)
{
snprintf(reg_msg, sizeof(reg_msg)-1, "fold \n");
}
else
{
if (callmoney + mMyBet<mtopMoney / 2)
{
RaiseMoneyOne = RaiseMoneyMore1BB();
snprintf(reg_msg, sizeof(reg_msg)-1, "raise %d \n", RaiseMoneyOne);
}
else
{
snprintf(reg_msg, sizeof(reg_msg)-1, "call \n");
}
}
}
else
{
snprintf(reg_msg, sizeof(reg_msg)-1, "fold \n");
}
}
else //if(mRaisePeople>=2) //2人加注
{
if (mHoldRank >= 10)
{
snprintf(reg_msg, sizeof(reg_msg)-1, "call \n");
}
else
{
snprintf(reg_msg, sizeof(reg_msg)-1, "fold \n");
}
}
}
//5人以上第二轮
void HoldWheelTwoSeatNumberMore5(int mHoldWeight, int mRaisePeople)
{
long mtopMoney = getMyTopMoney(mHoldWeight);
long mHoldRank = getMyHoldCardRank(mHoldWeight);
long mMyBet = getMyBet();
long RaiseMoneyOne = -1;
// double RuJuLv=player.
long mLivePeople = seatNumber - foldnum - 1; //进入第二轮之后,除了我之外还活着的人数
if (mLivePeople >= 3)//至少一人加注
{
if (mRaisePeople >= 2)
{
if (mHoldRank >= 10)
snprintf(reg_msg, sizeof(reg_msg)-1, "call \n");
else
{
if (callmoney >= mtopMoney)
snprintf(reg_msg, sizeof(reg_msg)-1, "fold \n");
else
{
if (mHoldRank >= 8)
snprintf(reg_msg, sizeof(reg_msg)-1, "call \n");
else
snprintf(reg_msg, sizeof(reg_msg)-1, "fold \n");
}
}
}
else //if(mRaisePeople==1)
{
if (mHoldRank >= 11)
{
if (callmoney + mMyBet<mtopMoney)
{
if (player[myid].action == "call") //如果我第一轮大牌跟住
{
//RaiseMoneyOne=RaiseMoneyMore4BB();
snprintf(reg_msg, sizeof(reg_msg)-1, "raise %d \n", callmoney);
}
else
{
snprintf(reg_msg, sizeof(reg_msg)-1, "call \n");
}
}
else
{
snprintf(reg_msg, sizeof(reg_msg)-1, "call \n");
}
}
else if (mHoldRank >= 7)
{
if (callmoney >= mtopMoney)//对方加注太多
{
snprintf(reg_msg, sizeof(reg_msg)-1, "fold \n");
}
else
{
if (callmoney + mMyBet<mtopMoney)
{
if (player[myid].action == "call") //如果我第一轮大牌跟住
{
RaiseMoneyOne = RaiseMoneyMore4BB();
snprintf(reg_msg, sizeof(reg_msg)-1, "raise %d \n", RaiseMoneyOne);
}
else
{
snprintf(reg_msg, sizeof(reg_msg)-1, "call \n");
}
}
else
{
snprintf(reg_msg, sizeof(reg_msg)-1, "call \n");
}
}
}
else if (mHoldRank >= 4)
{
if (callmoney >= mtopMoney)//对方加注太多
{
snprintf(reg_msg, sizeof(reg_msg)-1, "fold \n");
}
else
{
snprintf(reg_msg, sizeof(reg_msg)-1, "call \n");
}
}
else
{
snprintf(reg_msg, sizeof(reg_msg)-1, "fold \n");
}
}
}
else if (mLivePeople == 2) //至少一人加注
{
if (mRaisePeople == 2)
{
if (mHoldRank >= 11)
snprintf(reg_msg, sizeof(reg_msg)-1, "call \n");
else
{
if (callmoney >= mtopMoney)
snprintf(reg_msg, sizeof(reg_msg)-1, "fold \n");
else
{
snprintf(reg_msg, sizeof(reg_msg)-1, "call \n");
}
}
}
else //if(mRaisePeople==1)
{
if (mHoldRank >= 7)
{
if (callmoney >= mtopMoney)//对方加注太多
{
snprintf(reg_msg, sizeof(reg_msg)-1, "call \n");
}
else
{
if (callmoney + mMyBet<mtopMoney)
{
/*if (player[myid].action == "call") //如果我第一轮大牌跟住
{
RaiseMoneyOne = RaiseMoneyMore4BB();
snprintf(reg_msg, sizeof(reg_msg)-1, "raise %d \n", RaiseMoneyOne);
}
else
{
RaiseMoneyOne = RaiseMoneyMore1BB();
snprintf(reg_msg, sizeof(reg_msg)-1, "raise %d \n", RaiseMoneyOne);
}*/
snprintf(reg_msg, sizeof(reg_msg)-1, "call \n");
}
else
{
snprintf(reg_msg, sizeof(reg_msg)-1, "call \n");
}
}
}
else if (mHoldRank >= 4)
{
if (callmoney >= mtopMoney)//对方加注太多
{
snprintf(reg_msg, sizeof(reg_msg)-1, "fold \n");
}
else
{
if (player[myid].action == "call"&&mHoldRank <= 5) //如果我们第一轮小牌加注
{
if (callmoney + mMyBet<mtopMoney)
{
snprintf(reg_msg, sizeof(reg_msg)-1, "call \n");
}
else
{
snprintf(reg_msg, sizeof(reg_msg)-1, "fold \n");
}
}
else
{
if (callmoney + mMyBet<mtopMoney)
{
RaiseMoneyOne = RaiseMoneyMore1BB();
snprintf(reg_msg, sizeof(reg_msg)-1, "raise %d \n", RaiseMoneyOne);
}
else
{
snprintf(reg_msg, sizeof(reg_msg)-1, "call \n");
}
}
}
}
else
{
snprintf(reg_msg, sizeof(reg_msg)-1, "fold \n");
}
}
}
else if (mLivePeople == 1) //这个人肯定是加注
{
if (mHoldRank >= 8)
{
if (callmoney >= mtopMoney)//对方加注太多
{
snprintf(reg_msg, sizeof(reg_msg)-1, "call \n");
}
else
{
if (callmoney + mMyBet<mtopMoney)
{
if (player[myid].action == "call") //如果我第一轮大牌跟住
{
RaiseMoneyOne = RaiseMoneyMore4BB();
snprintf(reg_msg, sizeof(reg_msg)-1, "raise %d \n", RaiseMoneyOne);
}
else
{
RaiseMoneyOne = RaiseMoneyMore1BB();
snprintf(reg_msg, sizeof(reg_msg)-1, "raise %d \n", RaiseMoneyOne);
}
}
else
{
snprintf(reg_msg, sizeof(reg_msg)-1, "call \n");
}
}
}
else if (mHoldRank >= 4)
{
if (callmoney >= mtopMoney)//对方加注太多
{
snprintf(reg_msg, sizeof(reg_msg)-1, "fold \n");
}
else
{
if (player[myid].action == "call"&&mHoldRank<5) //如果我们第一轮小牌加注
{
if (callmoney + mMyBet<mtopMoney)
{
snprintf(reg_msg, sizeof(reg_msg)-1, "call \n");
}
else
{
snprintf(reg_msg, sizeof(reg_msg)-1, "fold \n");
}
}
else
{
snprintf(reg_msg, sizeof(reg_msg)-1, "call \n");
}
}
}
else
{
snprintf(reg_msg, sizeof(reg_msg)-1, "fold \n");
}
}
else //无人活着
{
snprintf(reg_msg, sizeof(reg_msg)-1, "call \n");
}
}
void HoldWheelThreeSeatNumberMore5(int mHoldWeight)
{
long mtopMoney = getMyTopMoney(mHoldWeight);
long mHoldRank = getMyHoldCardRank(mHoldWeight);
long mMyBet = getMyBet();
if (mHoldRank >= 4)
snprintf(reg_msg, sizeof(reg_msg)-1, "call \n");
else
{
if (callmoney + mMyBet<mtopMoney)
snprintf(reg_msg, sizeof(reg_msg)-1, "call \n");
else
snprintf(reg_msg, sizeof(reg_msg)-1, "fold \n");
}
}
//四个人第一轮
void HoldAISeatNumber4(int mHoldWeight)
{
int mrasiepeople = getRaisePeopleNumber();
switch (myPosition)
{
//庄家
case 1:if (HoldWheel == 1)
{
HoldWheelOneButtonSeatNumber4(mHoldWeight, mrasiepeople);
}
else if (HoldWheel == 2)
{
HoldWheelTwoSeatNumber4(mHoldWeight, mrasiepeople);
}
else
{
HoldWheelThreeSeatNumber4(mHoldWeight);
}
break;
//小盲
case 2:if (HoldWheel == 1)
{
HoldWheelOneSBSeatNumber4(mHoldWeight, mrasiepeople);
}
else if (HoldWheel == 2)
{
HoldWheelTwoSeatNumber4(mHoldWeight, mrasiepeople);
}
else
{
HoldWheelThreeSeatNumber4(mHoldWeight);
}
break;
//大盲
case 3:if (HoldWheel == 1)
{
HoldWheelOneBBSeatNumber4(mHoldWeight, mrasiepeople);
}
else if (HoldWheel == 2)
{
HoldWheelTwoSeatNumber4(mHoldWeight, mrasiepeople);
}
else
{
HoldWheelThreeSeatNumber4(mHoldWeight);
}
break;
//大盲下家
default:if (HoldWheel == 1)
{
HoldWheelOneBeforeButtonSeatNumber4(mHoldWeight);
}
else if (HoldWheel == 2)
{
HoldWheelTwoSeatNumber4(mHoldWeight, mrasiepeople);
}
else
{
HoldWheelThreeSeatNumber4(mHoldWeight);
}
break;
}
}
void HoldWheelOneButtonSeatNumber4(int mHoldWeight, int mRaisePeople)
{
long mtopMoney = getMyTopMoney(mHoldWeight);
long mHoldRank = getMyHoldCardRank(mHoldWeight);
long mMyBet = getMyBet();
long RaiseMoneyOne = -1;
if (mRaisePeople == 1)
{
if (mHoldRank >= 10)
{
if (callmoney >= mtopMoney)
{
snprintf(reg_msg, sizeof(reg_msg)-1, "call \n");
}
else
{
snprintf(reg_msg, sizeof(reg_msg)-1, "call \n");
}
}
else if (mHoldRank >= 8)
{
if (callmoney >= mtopMoney)
{
snprintf(reg_msg, sizeof(reg_msg)-1, "fold \n");
}
else
{
RaiseMoneyOne = RaiseMoneyMore1BB();
snprintf(reg_msg, sizeof(reg_msg)-1, "raise %d \n", RaiseMoneyOne);
}
}
else if (mHoldRank >= 6)
{
if (callmoney >= mtopMoney)
{
snprintf(reg_msg, sizeof(reg_msg)-1, "fold \n");
}
else
{
if (callmoney + mMyBet<mtopMoney / 2)
{
RaiseMoneyOne = RaiseMoneyMore2BB();
snprintf(reg_msg, sizeof(reg_msg)-1, "raise %d \n", RaiseMoneyOne);
}
else
{
snprintf(reg_msg, sizeof(reg_msg)-1, "call \n");
}
}
}
else
{
snprintf(reg_msg, sizeof(reg_msg)-1, "fold \n");
}
}
else
{
if (seatNumber - foldnum - 1 == 2) //第一轮说话时,第一个说话的人弃牌
{
if (mHoldRank >= 10)
{
snprintf(reg_msg, sizeof(reg_msg)-1, "call \n");
}
else if (mHoldRank >= 8)
{
RaiseMoneyOne = RaiseMoneyMore4BB();
snprintf(reg_msg, sizeof(reg_msg)-1, "raise %d \n", RaiseMoneyOne);
}
else if (mHoldRank >= 6)
{
RaiseMoneyOne = RaiseMoneyMore2BB();
snprintf(reg_msg, sizeof(reg_msg)-1, "raise %d \n", RaiseMoneyOne);
}
else if (mHoldRank >= 4)
{
snprintf(reg_msg, sizeof(reg_msg)-1, "call \n");
}
else
{
snprintf(reg_msg, sizeof(reg_msg)-1, "fold \n");
}
}
else //第一个人跟注
{
if (mHoldRank >= 10)
{
snprintf(reg_msg, sizeof(reg_msg)-1, "call \n");
}
else if (mHoldRank >= 8)
{
RaiseMoneyOne = RaiseMoneyMore4BB();
snprintf(reg_msg, sizeof(reg_msg)-1, "raise %d \n", RaiseMoneyOne);
}
else if (mHoldRank >= 6)
{
RaiseMoneyOne = RaiseMoneyMore2BB();
snprintf(reg_msg, sizeof(reg_msg)-1, "raise %d \n", RaiseMoneyOne);
}
else if (mHoldRank >= 4)
{
snprintf(reg_msg, sizeof(reg_msg)-1, "call \n");
}
else
{
snprintf(reg_msg, sizeof(reg_msg)-1, "fold \n");
}
}
}
}
void HoldWheelOneSBSeatNumber4(int mHoldWeight, int mRaisePeople)
{
long mtopMoney = getMyTopMoney(mHoldWeight);
long mHoldRank = getMyHoldCardRank(mHoldWeight);
long mMyBet = getMyBet();
long RaiseMoneyOne = -1;
if (mRaisePeople == 2)
{
if (mHoldRank >= 11)
{
snprintf(reg_msg, sizeof(reg_msg)-1, "call \n");
}
else if (mHoldRank >= 10)
{
if (callmoney >= mtopMoney)
{
snprintf(reg_msg, sizeof(reg_msg)-1, "fold \n");
}
else
{
snprintf(reg_msg, sizeof(reg_msg)-1, "call \n");
}
}
else if (mHoldRank >= 8)
{
if (callmoney >= mtopMoney)
{
snprintf(reg_msg, sizeof(reg_msg)-1, "fold \n");
}
else
{
snprintf(reg_msg, sizeof(reg_msg)-1, "call \n");
}
}
else
{
snprintf(reg_msg, sizeof(reg_msg)-1, "fold \n");
}
}
else if (mRaisePeople == 1)
{
if (mHoldRank >= 8)
{
if (callmoney >= mtopMoney)
{
snprintf(reg_msg, sizeof(reg_msg)-1, "call \n");
}
else
{
RaiseMoneyOne = RaiseMoneyMore2BB();
snprintf(reg_msg, sizeof(reg_msg)-1, "raise %d \n", RaiseMoneyOne);
}
}
else if (mHoldRank >= 4)
{
if (callmoney >= mtopMoney)
{
snprintf(reg_msg, sizeof(reg_msg)-1, "fold \n");
}
else
{
snprintf(reg_msg, sizeof(reg_msg)-1, "call \n");
}
}
else
{
snprintf(reg_msg, sizeof(reg_msg)-1, "fold \n");
}
}
else
{
if (seatNumber - foldnum == 2) //只有大盲与小盲还活着
{
if (mHoldRank >= 10)
{
snprintf(reg_msg, sizeof(reg_msg)-1, "call \n");
}
else if (mHoldRank >= 6)
{
RaiseMoneyOne = RaiseMoneyMore4BB();
snprintf(reg_msg, sizeof(reg_msg)-1, "raise %d \n", RaiseMoneyOne);
}
else if (mHoldRank >= 3)
{
RaiseMoneyOne = RaiseMoneyMore1BB();
snprintf(reg_msg, sizeof(reg_msg)-1, "raise %d \n", RaiseMoneyOne);
}
else
{
snprintf(reg_msg, sizeof(reg_msg)-1, "fold \n");
}
}
else
{
if (mHoldRank >= 8)
{
RaiseMoneyOne = RaiseMoneyMore1BB();
snprintf(reg_msg, sizeof(reg_msg)-1, "raise %d \n", RaiseMoneyOne);
}
else if (mHoldRank >= 6)
{
RaiseMoneyOne = RaiseMoneyMore4BB();
snprintf(reg_msg, sizeof(reg_msg)-1, "raise %d \n", RaiseMoneyOne);
}
else if (mHoldRank >= 3)
{
snprintf(reg_msg, sizeof(reg_msg)-1, "call \n");
}
else
{
snprintf(reg_msg, sizeof(reg_msg)-1, "fold \n");
}
}
}
}
void HoldWheelOneBBSeatNumber4(int mHoldWeight, int mRaisePeople)
{
long mtopMoney = getMyTopMoney(mHoldWeight);
long mHoldRank = getMyHoldCardRank(mHoldWeight);
long mMyBet = getMyBet();
long RaiseMoneyOne = -1;
if (seatNumber - foldnum - 1 == 0) //都弃牌
{
snprintf(reg_msg, sizeof(reg_msg)-1, "call \n");
}
else if (mRaisePeople >= 2)
{
if (mHoldRank >= 10)
{
snprintf(reg_msg, sizeof(reg_msg)-1, "call \n");
}
else if (mHoldRank >= 8)
{
if (callmoney >= mtopMoney)
{
snprintf(reg_msg, sizeof(reg_msg)-1, "fold \n");
}
else
snprintf(reg_msg, sizeof(reg_msg)-1, "call \n");
}
else
{
snprintf(reg_msg, sizeof(reg_msg)-1, "fold \n");
}
}
else if (mRaisePeople == 1)
{
if (mHoldRank >= 10)
{
snprintf(reg_msg, sizeof(reg_msg)-1, "call \n");
}
else if (mHoldRank >= 6)
{
if (callmoney >= mtopMoney)
{
snprintf(reg_msg, sizeof(reg_msg)-1, "fold \n");
}
else
{
if (callmoney + mMyBet<mtopMoney / 2)
{
RaiseMoneyOne = RaiseMoneyMore2BB();
snprintf(reg_msg, sizeof(reg_msg)-1, "raise %d \n", RaiseMoneyOne);
}
else
{
snprintf(reg_msg, sizeof(reg_msg)-1, "call \n");
}
}
}
else if (mHoldRank >= 4)
{
if (callmoney>mtopMoney)
{
snprintf(reg_msg, sizeof(reg_msg)-1, "fold \n");
}
else
{
snprintf(reg_msg, sizeof(reg_msg)-1, "call \n");
}
}
else if (mHoldRank >= 2)
{
if (callmoney >= mtopMoney)
{
snprintf(reg_msg, sizeof(reg_msg)-1, "fold \n");
}
else
{
snprintf(reg_msg, sizeof(reg_msg)-1, "call \n");
}
}
else
{
snprintf(reg_msg, sizeof(reg_msg)-1, "fold \n");
}
}
else //全都让牌
{
if (mHoldRank >= 7)
{
RaiseMoneyOne = RaiseMoneyMore1BB();
snprintf(reg_msg, sizeof(reg_msg)-1, "raise %d \n", RaiseMoneyOne);
}
else if (mHoldRank >= 4)
{
RaiseMoneyOne = RaiseMoneyMore4BB();
snprintf(reg_msg, sizeof(reg_msg)-1, "raise %d \n", RaiseMoneyOne);
}
else
{
snprintf(reg_msg, sizeof(reg_msg)-1, "check \n");
}
}
}
void HoldWheelOneBeforeButtonSeatNumber4(int mHoldWeight)
{
long mHoldRank = getMyHoldCardRank(mHoldWeight);
long RaiseMoneyOne = -1;
if (mHoldRank >= 8)
{
RaiseMoneyOne = RaiseMoneyMore1BB();
snprintf(reg_msg, sizeof(reg_msg)-1, "raise %d \n", RaiseMoneyOne);
}
else if (mHoldRank >= 6)
{
RaiseMoneyOne = RaiseMoneyMore4BB();
snprintf(reg_msg, sizeof(reg_msg)-1, "raise %d \n", RaiseMoneyOne);
}
/* else if(mHoldRank>=4)
{
snprintf(reg_msg, sizeof(reg_msg)-1, "call \n");
}*/
else
{
snprintf(reg_msg, sizeof(reg_msg)-1, "fold \n");
}
}
//第二轮
void HoldWheelTwoSeatNumber4(int mHoldWeight, int mRaisePeople)
{
long mtopMoney = getMyTopMoney(mHoldWeight);
long mHoldRank = getMyHoldCardRank(mHoldWeight);
long mMyBet = getMyBet();
long RaiseMoneyOne = -1;
// double RuJuLv=player.
long mLivePeople = seatNumber - foldnum - 1; //进入第二轮之后,除了我之外还活着的人数
if (mLivePeople >= 3)//至少一人加注
{
if (mRaisePeople == 2)
{
if (mHoldRank >= 10)
snprintf(reg_msg, sizeof(reg_msg)-1, "call \n");
else
{
if (callmoney >= mtopMoney)//对方加注太多
{
snprintf(reg_msg, sizeof(reg_msg)-1, "fold \n");
}
else
{
snprintf(reg_msg, sizeof(reg_msg)-1, "call \n");
}
}
}
else //if(mRaisePeople==1)
{
if (mHoldRank >= 10)
{
snprintf(reg_msg, sizeof(reg_msg)-1, "call \n");
}
else if (mHoldRank >= 8)
{
if (callmoney >= mtopMoney)//对方加注太多
{
snprintf(reg_msg, sizeof(reg_msg)-1, "fold \n");
}
else
{
if (callmoney + 2 * mMyBet<mtopMoney)
{
if (player[myid].action == "call") //如果我第一轮大牌跟住
{
RaiseMoneyOne = RaiseMoneyMore4BB();
snprintf(reg_msg, sizeof(reg_msg)-1, "raise %d \n", RaiseMoneyOne);
}
else
{
RaiseMoneyOne = RaiseMoneyMore1BB();
snprintf(reg_msg, sizeof(reg_msg)-1, "raise %d \n", RaiseMoneyOne);
}
}
else
{
snprintf(reg_msg, sizeof(reg_msg)-1, "call \n");
}
}
}
else if (mHoldRank >= 5)
{
if (callmoney >= mtopMoney)//对方加注太多
{
snprintf(reg_msg, sizeof(reg_msg)-1, "fold \n");
}
else
{
snprintf(reg_msg, sizeof(reg_msg)-1, "call \n");
}
}
else
{
snprintf(reg_msg, sizeof(reg_msg)-1, "fold \n");
}
}
}
else if (mLivePeople == 2) //至少一人加注
{
if (mRaisePeople == 2)
{
if (mHoldRank >= 10)
snprintf(reg_msg, sizeof(reg_msg)-1, "call \n");
else
{
if (callmoney >= mtopMoney)//对方加注太多
{
snprintf(reg_msg, sizeof(reg_msg)-1, "fold \n");
}
else
{
snprintf(reg_msg, sizeof(reg_msg)-1, "call \n");
}
}
}
else //if(mRaisePeople==1)
{
if (mHoldRank >= 10)
{
snprintf(reg_msg, sizeof(reg_msg)-1, "call \n");
}
else if (mHoldRank >= 8)
{
if (callmoney >= mtopMoney)//对方加注太多
{
snprintf(reg_msg, sizeof(reg_msg)-1, "fold \n");
}
else
{
snprintf(reg_msg, sizeof(reg_msg)-1, "call \n");
}
}
else if (mHoldRank >= 4)
{
if (callmoney >= mtopMoney)//对方加注太多
{
snprintf(reg_msg, sizeof(reg_msg)-1, "fold \n");
}
else
{
snprintf(reg_msg, sizeof(reg_msg)-1, "call \n");
}
}
else
{
snprintf(reg_msg, sizeof(reg_msg)-1, "fold \n");
}
}
}
else if (mLivePeople == 1) //这个人肯定是加注
{
if (mHoldRank >= 8)
{
snprintf(reg_msg, sizeof(reg_msg)-1, "call \n");
}
else if (mHoldRank >= 4)
{
if (callmoney >= mtopMoney)//对方加注太多
{
snprintf(reg_msg, sizeof(reg_msg)-1, "fold \n");
}
else
{
snprintf(reg_msg, sizeof(reg_msg)-1, "call \n");
}
}
else
{
snprintf(reg_msg, sizeof(reg_msg)-1, "fold \n");
}
}
else //无人活着
{
snprintf(reg_msg, sizeof(reg_msg)-1, "call \n");
}
}
//第三轮
void HoldWheelThreeSeatNumber4(int mHoldWeight)
{
long mtopMoney = getMyTopMoney(mHoldWeight);
long mHoldRank = getMyHoldCardRank(mHoldWeight);
long mMyBet = getMyBet();
if (mHoldRank >= 4)
snprintf(reg_msg, sizeof(reg_msg)-1, "call \n");
else
{
if (callmoney + mMyBet<mtopMoney)
snprintf(reg_msg, sizeof(reg_msg)-1, "call \n");
else
snprintf(reg_msg, sizeof(reg_msg)-1, "fold \n");
}
}
部分变量是全局变量,通过信息提取出来的。仅供纪念与参考;
(当初8000行的一个函数,提取出来这么多子函数,方便调试参数,也学到了好多:函数越短越好,能分解最好,易于调试与修改)