📄 oldherd.txt
字号:
if(env->predictedBall.pos.x > 18)
{
if(robot->pos.x > (env->predictedBall.pos.x+ROBOTRADIUS/2)) //robot closer to opponent goal than ball
{
if(robot->pos.y > (env->predictedBall.pos.y+ROBOTRADIUS/2))//robot above ball
{
//Go_AboveNBehind_Pos(env->predictedBall.pos,robot,WhichRobot,ROBOTRADIUS,ROBOTRADIUS);
PositionRobot(env->predictedBall.pos,robot,WhichRobot,ROBOTRADIUS,ABOVELEFT);
}
if(robot->pos.y < (env->predictedBall.pos.y-ROBOTRADIUS/2))//robot below ball
{
//Go_BelowNBehind_Pos(env->predictedBall.pos,robot,WhichRobot,ROBOTRADIUS,ROBOTRADIUS);
PositionRobot(env->predictedBall.pos,robot,WhichRobot,ROBOTRADIUS,BELOWLEFT);
}
if(robot->pos.y <= (env->predictedBall.pos.y+ROBOTRADIUS/2) && robot ->pos.y >= (env->predictedBall.pos.y-ROBOTRADIUS/2))//robot in front of ball
{
if(env->predictedBall.pos.y <= 45)// if in lower half of field
{
//Go_Above_Pos(env->predictedBall.pos,robot,WhichRobot,ROBOTRADIUS*2,ROBOTRADIUS*2);
PositionRobot(env->predictedBall.pos,robot,WhichRobot,ROBOTRADIUS*2,ABOVE);
}
else // if in higher half of field
{
//Go_Below_Pos(env->predictedBall.pos,robot,WhichRobot,ROBOTRADIUS*2,ROBOTRADIUS*2);
PositionRobot(env->predictedBall.pos,robot,WhichRobot,ROBOTRADIUS*2,BELOW);
}
}
}
else // robot not closer to opponent goal than ball
{
if(robot->pos.y > (env->predictedBall.pos.y+ROBOTRADIUS/2))//robot above ball
{
//Go_Behind_Pos(env->predictedBall.pos,robot,WhichRobot,ROBOTRADIUS*2,ROBOTRADIUS*2);
PositionRobot(env->predictedBall.pos,robot,WhichRobot,ROBOTRADIUS*2,LEFT);
}
if(robot->pos.y < (env->predictedBall.pos.y-ROBOTRADIUS/2))//robot below ball
{
//Go_Behind_Pos(env->predictedBall.pos,robot,WhichRobot,ROBOTRADIUS,ROBOTRADIUS);
PositionRobot(env->predictedBall.pos,robot,WhichRobot,ROBOTRADIUS,LEFT);
}
if(robot->pos.y <= (env->predictedBall.pos.y+ROBOTRADIUS) && robot ->pos.y >= (env->predictedBall.pos.y-ROBOTRADIUS))//robot behind ball
{
Position(env->predictedBall.pos,WhichRobot);
//Rotate_To_Ball(env->predictedBall,env,WhichRobot);
}
}
}
else
{
if(env->predictedBall.pos.y <= 27)//ball below home goal area
{
if(robot->pos.x > (env->predictedBall.pos.x+ROBOTRADIUS/2)) //robot closer to opponent goal than ball
{
if(robot->pos.y > (env->predictedBall.pos.y+ROBOTRADIUS/4))//robot above ball
{
//Go_AboveNBehind_Pos(env->predictedBall.pos,robot,WhichRobot,ROBOTRADIUS/2,ROBOTRADIUS/2);
PositionRobot(env->predictedBall.pos,robot,WhichRobot,ROBOTRADIUS/2,ABOVELEFT);
}
if(robot->pos.y < (env->predictedBall.pos.y-ROBOTRADIUS/4))//robot below ball
{
//Go_AboveNFront_Pos(env->predictedBall.pos,robot,WhichRobot,ROBOTRADIUS/2,ROBOTRADIUS/2);
PositionRobot(env->predictedBall.pos,robot,WhichRobot,ROBOTRADIUS/2,ABOVERIGHT);
}
if(robot->pos.y <= (env->predictedBall.pos.y+ROBOTRADIUS/4) && robot ->pos.y >= (env->predictedBall.pos.y-ROBOTRADIUS/4))//robot in front of ball
{
//Go_Above_Pos(env->predictedBall.pos,robot,WhichRobot,ROBOTRADIUS/2,ROBOTRADIUS/2);
PositionRobot(env->predictedBall.pos,robot,WhichRobot,ROBOTRADIUS/2,ABOVE);
}
}
else // ball closer to opponent goal
{
if(robot->pos.y > (env->predictedBall.pos.y+ROBOTRADIUS/4))//robot above ball
{
//Go_AboveNBehind_Pos(env->predictedBall.pos,robot,WhichRobot,ROBOTRADIUS/2,ROBOTRADIUS/2);
PositionRobot(env->predictedBall.pos,robot,WhichRobot,ROBOTRADIUS/2,ABOVELEFT);
}
if(robot->pos.y < (env->predictedBall.pos.y-ROBOTRADIUS/4))//robot below ball
{
//Go_AboveNBehind_Pos(env->predictedBall.pos,robot,WhichRobot,ROBOTRADIUS/2,ROBOTRADIUS/2);
PositionRobot(env->predictedBall.pos,robot,WhichRobot,ROBOTRADIUS/2,ABOVELEFT);
}
if(robot->pos.y <= (env->predictedBall.pos.y+ROBOTRADIUS/4) && robot ->pos.y >= (env->predictedBall.pos.y-ROBOTRADIUS/4))//robot behind ball
{
//Go_AboveNBehind_Pos(env->predictedBall.pos,robot,WhichRobot,ROBOTRADIUS/4,ROBOTRADIUS/4);
PositionRobot(env->predictedBall.pos,robot,WhichRobot,ROBOTRADIUS/4,ABOVELEFT);
}
}
}
if(env->predictedBall.pos.y >= 57)//ball above home goal area
{
if(robot->pos.x > (env->predictedBall.pos.x+ROBOTRADIUS/2)) //robot closer to opponent goal than ball
{
if(robot->pos.y > (env->predictedBall.pos.y+ROBOTRADIUS/4))//robot above ball
{
//Go_BelowNFront_Pos(env->predictedBall.pos,robot,WhichRobot,ROBOTRADIUS/2,ROBOTRADIUS/2);
PositionRobot(env->predictedBall.pos,robot,WhichRobot,ROBOTRADIUS/2,BELOWRIGHT);
}
if(robot->pos.y < (env->predictedBall.pos.y-ROBOTRADIUS/4))//robot below ball
{
//Go_BelowNBehind_Pos(env->predictedBall.pos,robot,WhichRobot,ROBOTRADIUS/2,ROBOTRADIUS/2);
PositionRobot(env->predictedBall.pos,robot,WhichRobot,ROBOTRADIUS/2,BELOWRIGHT);
}
if(robot->pos.y <= (env->predictedBall.pos.y+ROBOTRADIUS/4) && robot ->pos.y >= (env->predictedBall.pos.y-ROBOTRADIUS/4))//robot in front of ball
{
//Go_Below_Pos(env->predictedBall.pos,robot,WhichRobot,ROBOTRADIUS/2,ROBOTRADIUS/2);
PositionRobot(env->predictedBall.pos,robot,WhichRobot,ROBOTRADIUS/2,BELOW);
}
}
else // ball closer to opponent goal
{
if(robot->pos.y > (env->predictedBall.pos.y+ROBOTRADIUS/4))//robot above ball
{
//Go_BelowNBehind_Pos(env->predictedBall.pos,robot,WhichRobot,ROBOTRADIUS/2,ROBOTRADIUS/2);
PositionRobot(env->predictedBall.pos,robot,WhichRobot,ROBOTRADIUS/2,BELOWLEFT);
}
if(robot->pos.y < (env->predictedBall.pos.y-ROBOTRADIUS/4))//robot below ball
{
//Go_BelowNBehind_Pos(env->predictedBall.pos,robot,WhichRobot,ROBOTRADIUS/2,ROBOTRADIUS/2);
PositionRobot(env->predictedBall.pos,robot,WhichRobot,ROBOTRADIUS/2,BELOWLEFT);
}
if(robot->pos.y <= (env->predictedBall.pos.y+ROBOTRADIUS/4) && robot ->pos.y >= (env->predictedBall.pos.y-ROBOTRADIUS/4))//robot behind ball
{
//Go_BelowNBehind_Pos(env->predictedBall.pos,robot,WhichRobot,ROBOTRADIUS/4,ROBOTRADIUS/4);
PositionRobot(env->predictedBall.pos,robot,WhichRobot,ROBOTRADIUS/4,BELOWLEFT);
}
}
}
if(env->predictedBall.pos.y < 57 && env->predictedBall.pos.y > 27)
{
Brake(WhichRobot);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -