本文整理汇总了C++中WorldModel::IsTeammateAbnormal方法的典型用法代码示例。如果您正苦于以下问题:C++ WorldModel::IsTeammateAbnormal方法的具体用法?C++ WorldModel::IsTeammateAbnormal怎么用?C++ WorldModel::IsTeammateAbnormal使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类WorldModel
的用法示例。
在下文中一共展示了WorldModel::IsTeammateAbnormal方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: EstimateSituationUpdate_FreeMan
void Decision::EstimateSituationUpdate_FreeMan()
{
SITUATION_FREEMAN situation_decision = UNKNOWN_SITUATION;
Vector m_vBallPosm_vBallPos = wm.m_vBallPos;
bool bTeammate = false;
double dClosestDistTeammate=0;double dClosestDistPlayer=0;
int iClosestTeammate=0; int iClosestPlayer=0; int iClosestOpp=0;
dClosestDistTeammate = wm.GetClosestToBallTeammate(iClosestTeammate);
dClosestDistPlayer = wm.GetClosestToBallPlayer(iClosestPlayer,bTeammate);
//if ( (iClosestTeammate==wm.GetUnum() || (iClosestTeammate!=wm.GetUnum() && wm.IsTeammateAbnormal(iClosestTeammate) && fabs(dClosestDistTeammate-wm.GetMeToBallDistInXY())<1.0 ) ) && !wm.IsBallInOurFA())
if (1)
{
situation_decision = ATTACK;
goto CheckSituation_Change;
}
if ( iClosestTeammate!=wm.GetUnum() && ((wm.IsBallInOurFA() && !wm.IsTeammateAbnormal(iClosestTeammate)) || !wm.IsBallInOurFA()) )
{
situation_decision = ASSIST_ATTACK;
goto CheckSituation_Change;
}
if ((wm.IsBallInOurFA() && wm.IsTeammateAbnormal(3)) || (wm.GetClosestToBallOpp(iClosestOpp)<0.3 && wm.IsTeammateAbnormal(iClosestTeammate)))
{
situation_decision = URGENCY_DEFEND;
goto CheckSituation_Change;
}
else
situation_decision = ASSIST_DEFEND;
CheckSituation_Change:
if (situation_decision != Freeman_Situation) //When Situation Changed , Consider about Action Over
{
if (Motion_State == WALK_PERIOD)
Motion_State = STOP_WALK_PERIOD;
else if (Motion_State == MICRO_PERIOD)
Motion_State = STOP_MICRO_PERIOD;
else
Motion_State = ACTION_READY;
}
Freeman_Situation = situation_decision;
return;
}