2015华为软件精英挑战赛之手牌策略
来源:互联网 发布:java到底是什么 编辑:程序博客网 时间:2024/05/01 07:43
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行的一个函数,提取出来这么多子函数,方便调试参数,也学到了好多:函数越短越好,能分解最好,易于调试与修改)
- 2015华为软件精英挑战赛之手牌策略
- 2015华为软件精英挑战赛德州扑克之手牌处理
- 2015华为软件精英挑战赛德州扑克之后期策略
- 华为软件精英挑战赛2015
- 2015华为软件精英挑战赛
- 德州扑克 2015 华为软件精英挑战赛
- 华为软件精英挑战赛2016
- 2017 华为软件精英挑战赛
- 2017华为软件精英挑战赛
- 华为软件精英挑战赛总结
- 2017华为软件精英挑战赛
- 华为软件精英挑战赛总结
- 2015华为软件精英挑战赛德州扑克之蒙特卡洛法模拟胜率
- 2015华为软件精英挑战赛 客户端源码 德州扑克
- 华为软件精英挑战赛【德州扑克】心得体会
- 华为软件精英挑战赛2016题解
- 2016华为软件精英挑战赛总结
- 2017华为软件精英挑战赛思路分析
- 我的YUV播放器MFC小笔记:注册表读写
- 目标文件中变量的位置以及默认值
- windows10编译Box2D源文件
- HDU 2222 Keywords Search(AC自动机模板题)
- windows常用快捷运行命令
- 2015华为软件精英挑战赛之手牌策略
- Java基础之反射
- JAVA编程——Throwable常见异常及源码详解
- Log4cpp:为中小型C++项目加上log支持
- NSThread线程对象
- c语言中scanf输入带空格的字符串以及scanf输入单个字符的问题
- Java NIO原理图文分析及代码实现
- HDU 5384 Danganronpa (AC自动机模板题)
- Android 实现刮刮卡效果