📄 strategy.cpp
字号:
break;
case 10:
Order(env);
oppOrder(env);
if(Within(env,p->mainrobot ,3))
{
pos.x =9;
pos.y =9;
Kick(env,p->mainrobot ,pos );
}
else
{
pos.x =10;
pos.y =28;
PositionAndStop(env,p->mainrobot ,pos,-90,1.5);
}
pos.x =20;
pos.y =28;
if(fabs(p->opp[p->slowrobot].pos.x-pos.x)<5&&fabs(p->opp[p->slowrobot].pos.y-pos.y)<5)
{
PositionAndThrough(env,p->slowrobot ,p->opp[p->slowrobot].pos,125);
}
else
{
PositionAndStop(env,p->slowrobot,pos,-45,1.5);
}
pos.x =13;
pos.y =53;
if(fabs(p->opp[p->oppcutrobot].pos.x-pos.x)<15&&fabs(p->opp[p->cutrobot ].pos.y-pos.y)<15)
{
PositionAndThrough(env,p->defentrobot ,p->opp[p->cutrobot].pos,125);
}
else
{
PositionAndStop(env,p->defentrobot,pos ,-30);
}
pos.x = 23;
pos.y =43;
if(fabs(p->opp[p->cutrobot ].pos.x-pos.x)<15&&fabs(p->opp[p->cutrobot ].pos.y-pos.y)<15)
{
PositionAndThrough(env,p->cutrobot ,p->opp[p->cutrobot].pos,125);
}
else
{
PositionAndStop(env,p->cutrobot ,pos ,-30);
}
break;
case 11:
Order(env);
oppOrder(env);
if(Within(env,p->mainrobot ,3))
{
pos.x =20;
pos.y =12;
Kick(env,p->mainrobot ,pos );
}
else
{
pos.x =12;
pos.y =30;
PositionAndStop(env,p->mainrobot ,pos,-45,1.5);
}
pos.x =20;
pos.y =29;
if(fabs(p->opp[p->slowrobot].pos.x-pos.x)<5&&fabs(p->opp[p->slowrobot].pos.y-pos.y)<5)
{
PositionAndThrough(env,p->slowrobot ,p->opp[p->slowrobot].pos,125);
}
else
{
PositionAndStop(env,p->slowrobot,pos,-45,1.5);
}
pos.x =13;
pos.y =53;
if(fabs(p->opp[p->oppcutrobot].pos.x-pos.x)<15&&fabs(p->opp[p->cutrobot ].pos.y-pos.y)<15)
{
PositionAndThrough(env,p->defentrobot ,p->opp[p->cutrobot].pos,125);
}
else
{
PositionAndStop(env,p->defentrobot,pos ,30);
}
pos.x = 25;
pos.y =43;
if(fabs(p->opp[p->cutrobot ].pos.x-pos.x)<15&&fabs(p->opp[p->cutrobot ].pos.y-pos.y)<15)
{
PositionAndThrough(env,p->cutrobot ,p->opp[p->cutrobot].pos,125);
}
else
{
PositionAndStop(env,p->cutrobot ,pos ,-30);
}
break;
case 12:
Order(env);
oppOrder(env);
if(Within(env,p->mainrobot ,5))
{
pos.x =94;
pos.y =47;
Kick(env,p->mainrobot ,pos );
PositionAndThrough(env,p->cutrobot ,Meetball_p(env,p->cutrobot ),120);
}
else
{
Kick(env,p->mainrobot,1,1.5);
Kick(env,p->cutrobot ,3,1.5);
}
if(Within(env,p->slowrobot ,6))
{
Kick(env,p->slowrobot ,p->mainrobot );
}
else
{
pos.x =22;
pos.y =32;
PositionAndStop(env,p->slowrobot,pos,10,1.5);
}
pos.x =13;
pos.y =53;
if(fabs(p->opp[p->oppcutrobot].pos.x-pos.x)<15&&fabs(p->opp[p->cutrobot ].pos.y-pos.y)<15)
{
PositionAndThrough(env,p->defentrobot ,p->opp[p->cutrobot].pos,125);
}
else
{
PositionAndStop(env,p->defentrobot ,pos,-30,1.5);
}
break;
case 13 :
Order(env);
oppOrder(env);
if(Within(env,p->mainrobot ,5))
{
pos.x =93;
pos.y =45;
Kick(env,p->mainrobot ,pos);
PositionAndThrough(env,p->cutrobot ,Meetball_p(env,p->cutrobot ),120);
}
else
{
Kick(env,p->mainrobot ,1,1.5);
PredictBall(env,3);
PositionAndStop(env,p->cutrobot ,p->preball ,30,1.5);
Kick(env,p->cutrobot ,p->mainrobot );
}
if(Within(env,p->slowrobot ,6))
{
Kick(env,p->slowrobot ,p->mainrobot );
}
else
{
pos.x=33;
pos.y =35;
PositionAndStop(env,p->slowrobot ,pos,30,1.5);
}
pos.x =20;
pos.y =50;
if(fabs(p->opp[p->oppcutrobot].pos.x-pos.x)<15&&fabs(p->opp[p->cutrobot ].pos.y-pos.y)<15)
{
PositionAndThrough(env,p->defentrobot ,p->opp[p->cutrobot].pos,125);
}
else
{
PositionAndThrough(env,p->defentrobot ,pos ,-30);
}
break;
case 14:
Order(env);
oppOrder(env);
if(Within(env,p->mainrobot ,3))
{
pos.x =48.7;
pos.y =43;
PositionAndThrough(env,p->cutrobot ,pos,125);
Kick(env,p->mainrobot ,p->cutrobot );
}
else
{
pos=PredictOpp(env,p->oppslowrobot ,2);
Kick(env,p->mainrobot ,1,1.5);
PositionAndStop(env,p->cutrobot ,p->opp [p->oppslowrobot ].pos ,(180+p->opp [p->slowrobot ].rotation ),3);
}
pos.x =9;
pos.y =28;
if(fabs(p->opp[p->slowrobot].pos.x-pos.x)<15&&fabs(p->opp[p->slowrobot].pos.y-pos.y)<15)
{
PositionAndThrough(env,p->slowrobot ,p->opp[p->slowrobot].pos,125);
}
else
{
PositionAndStop(env,p->slowrobot ,pos,-45,1.5);
}
pos.x =20;
pos.y =58;
if(fabs(p->opp[p->oppcutrobot].pos.x-pos.x)<15&&fabs(p->opp[p->cutrobot ].pos.y-pos.y)<15)
{
PositionAndThrough(env,p->defentrobot ,p->opp[p->cutrobot].pos,125);
}
else
{
PositionAndStop(env,p->defentrobot,pos ,-30);
}
break;
case 15:
Order(env);
oppOrder(env);
if(Within(env,p->mainrobot ,3))
{
pos.x =48.7;
pos.y =43;
PositionAndThrough(env,p->cutrobot ,pos,125);
Kick(env,p->mainrobot ,p->cutrobot );
}
else
{
pos=PredictOpp(env,p->oppslowrobot ,2);
Kick(env,p->mainrobot ,1,1.5);
PositionAndStop(env,p->cutrobot ,p->opp [p->oppslowrobot ].pos ,(180+p->opp [p->slowrobot ].rotation ),3);
}
pos.x =12;
pos.y =28;
if(fabs(p->opp[p->slowrobot].pos.x-pos.x)<15&&fabs(p->opp[p->slowrobot].pos.y-pos.y)<15)
{
PositionAndThrough(env,p->slowrobot ,p->opp[p->slowrobot].pos,125);
}
else
{
PositionAndStop(env,p->slowrobot ,Meetball_p(env,p->slowrobot ),45,1.5);
}
pos.x =20;
pos.y =57;
if(fabs(p->opp[p->oppcutrobot].pos.x-pos.x)<15&&fabs(p->opp[p->cutrobot ].pos.y-pos.y)<15)
{
PositionAndThrough(env,p->defentrobot ,p->opp[p->cutrobot].pos,125);
}
else
{
PositionAndThrough(env,p->defentrobot ,pos ,125);
}
break;
case 16:
Order(env);
oppOrder(env);
if(Within(env,p->mainrobot ,5))
{
pos.x =48.7;
pos.y =43;
PositionAndThrough(env,p->cutrobot ,pos,125);
Kick(env,p->mainrobot ,p->cutrobot );
}
else
{
pos=PredictOpp(env,p->oppslowrobot ,2);
Kick(env,p->mainrobot ,1,1.5);
PositionAndStop(env,p->cutrobot ,p->opp [p->oppslowrobot ].pos ,(180+p->opp [p->slowrobot ].rotation ),3);
}
pos.x =20;
pos.y =28;
if(fabs(p->opp[p->slowrobot].pos.x-pos.x)<15&&fabs(p->opp[p->slowrobot].pos.y-pos.y)<15)
{
PositionAndThrough(env,p->slowrobot ,p->opp[p->slowrobot].pos,125);
}
else
{
PositionAndStop(env,p->slowrobot ,Meetball_p(env,p->slowrobot ),-45,1.5);
}
pos.x =20;
pos.y =43;
if(fabs(p->opp[p->oppcutrobot].pos.x-pos.x)<15&&fabs(p->opp[p->cutrobot ].pos.y-pos.y)<15)
{
PositionAndThrough(env,p->defentrobot ,p->opp[p->cutrobot].pos,125);
}
else
{
PositionAndStop(env,p->defentrobot ,pos ,-30,1.5);
}
break;
case 17:
Order(env);
oppOrder(env);
if(Within(env,p->mainrobot ,3))
{
pos.x =94;
pos.y =45;
Kick(env,p->mainrobot ,pos );
PositionAndThrough(env,p->cutrobot ,Meetball_p(env,p->cutrobot ),120);
}
else
{
Kick(env,p->mainrobot,1,1.5);
Kick(env,p->cutrobot ,3,1.5);
}
if(Within(env,p->slowrobot ,6))
{
Kick(env,p->slowrobot ,p->mainrobot );
}
else
{
pos.x =33;
pos.y =28;
PositionAndStop(env,p->slowrobot ,Meetball_p(env,p->slowrobot ),-45,1.5);
}
pos.x =20;
pos.y =33;
if(fabs(p->opp[p->oppcutrobot].pos.x-pos.x)<15&&fabs(p->opp[p->cutrobot ].pos.y-pos.y)<15)
{
PositionAndThrough(env,p->defentrobot ,p->opp[p->cutrobot].pos,125);
}
else
{
PositionAndStop(env,p->defentrobot ,pos,30,1.5);
}
break;
case 18:
Order(env);
oppOrder(env);
if(Within(env,p->mainrobot ,3))
{
pos.x =48.7;
pos.y =43;
PositionAndThrough(env,p->cutrobot ,pos,125);
Kick(env,p->mainrobot ,p->cutrobot );
}
else
{
pos=PredictOpp(env,p->oppslowrobot ,2);
Kick(env,p->mainrobot ,1,1.5);
PositionAndStop(env,p->cutrobot ,p->opp [p->oppslowrobot ].pos ,(180+p->opp [p->slowrobot ].rotation) ,3);
}
pos.x =20;
pos.y =43;
if(fabs(p->opp[p->slowrobot].pos.x-pos.x)<15&&fabs(p->opp[p->slowrobot].pos.y-pos.y)<15)
{
PositionAndThrough(env,p->slowrobot ,p->opp[p->slowrobot].pos,125);
}
else
{
PositionAndStop(env,p->slowrobot ,Meetball_p(env,p->slowrobot ),4-5,1.5);
}
pos.x =20;
pos.y =57;
if(fabs(p->opp[p->oppcutrobot].pos.x-pos.x)<15&&fabs(p->opp[p->cutrobot ].pos.y-pos.y)<15)
{
PositionAndThrough(env,p->defentrobot ,p->opp[p->cutrobot].pos,125);
}
else
{
PositionAndThrough(env,p->defentrobot ,pos ,30);
}
break;
case 19:
Order(env);
oppOrder(env);
if(Within(env,p->mainrobot ,5))
{
pos.x =80;
pos.y =58;
PositionAndThrough(env,p->cutrobot ,Meetball_p(env,p->cutrobot ),125);
for(count=300;count>0;count--)
{
while(count<1)
{
Kick(env,p->mainrobot ,p->cutrobot );
}
}
}
else
{
Kick(env,p->mainrobot ,2,1);
}
if(Within(env,p->slowrobot ,5))
{
Kick(env,p->slowrobot ,p->cutrobot);
}
else
{
Kick(env,p->slowrobot ,3,3);
}
if(Within(env,p->cutrobot ,5))
{
shoot(env,p->cutrobot );
}
else
{
if(p->opp [0].pos .y <=43)
{
pos.x=80;
pos.y =53;
PositionAndThrough(env,p->cutrobot ,pos,125);
}
else
{
pos.x=80;
pos.y =33;
PositionAndThrough(env,p->cutrobot ,pos,125);
}
}
pos.x=33;
pos.y =45;
if(fabs(p->opp[p->oppcutrobot].pos.x-pos.x)<10&&fabs(p->opp[p->cutrobot ].pos.y-pos.y)<10)
{
PositionAndThrough(env,p->defentrobot ,p->opp[p->cutrobot].pos,125);
}
else
{
PositionAndThrough(env,p->defentrobot ,pos ,30);
}
break;
case 20:
Order(env);
oppOrder(env);
if(Within(env,p->mainrobot ,5))
{
pos.x =64;
pos.y =43;
PositionAndThrough(env,p->cutrobot ,Meetball_p(env,p->cutrobot ),125);
for(count=300;count>0;count--)
{
while(count<1)
{
Kick(env,p->mainrobot ,p->cutrobot );
}
}
}
else
{
Kick(env,p->mainrobot ,2,1);
}
if(Within(env,p->slowrobot ,5))
{
PositionAndStop(env,p->slowrobot ,pos,-30,1.5);
}
else
{
Kick(env,p->slowrobot ,3,3);
}
if(Within(env,p->cutrobot ,5))
{
shoot(env,p->cutrobot );
}
else
{
if(p->opp [0].pos .y <=43)
{
pos.x=80;
pos.y =53;
PositionAndThrough(env,p->cutrobot ,pos,125);
}
else
{
pos.x=80;
pos.y =33;
PositionAndThrough(env,p->cutrobot ,pos,125);
}
}
pos.x=33;
pos.y =45;
if(fabs(p->opp[p->oppcutrobot].pos.x-pos.x)<10&&fabs(p->opp[p->cutrobot ].pos.y-pos.y)<10)
{
PositionAndThrough(env,p->defentrobot ,p->opp[p->cutrobot].pos,125);
}
else
{
PositionAndThrough(env,p->defentrobot ,pos ,30);
}
break;
case 21:
Order(env);
oppOrder(env);
if(Within(env,p->mainrobot ,5))
{
shoot(env,p->mainrobot );
}
else
{
Kick(env,p->mainrobot ,2,1);
for(count=300;count>0;count--)
{
while(count<1)
{
Kick(env,p->mainrobot ,p->cutrobot );
}
}
}
if(Within(env,p->slowrobot ,5))
{
Kick(env,p->slowrobot ,p->cutrobot );
}
else
{
Kick(env,p->slowrobot ,3,3);
}
if(Within(env,p->cutrobot ,5))
{
shoot(env,p->cutrobot );
}
else
{
if(p->opp [0].pos .y <=43)
{
pos.x=64;
pos.y =43;
PositionAndThrough(env,p->cutrobot ,pos,125);
}
else
{
pos.x=64;
pos.y =20;
PositionAndThrough(env,p->cutrobot ,pos,125);
}
}
pos.x=33;
pos.y =45;
if(fabs(p->opp[p->oppcutrobot].pos.x-pos.x)<10&&fabs(p->opp[p->cutrobot ].pos.y-pos.y)<10)
{
PositionAndThrough(env,p->defentrobot ,p->opp[p->cutrobot].pos,125);
}
else
{
PositionAndThrough(env,p->defentrobot ,pos ,30);
}
break;
case 22:
Order(env);
oppOrder(env);
if(Within(env,p->mainrobot ,5))
{
shoot(env,p->mainrobot );
}
else
{
Kick(env,p->mainrobot ,2,1);
for(count=300;count>0;count--)
{
while(count<1)
{
Kick(env,p->mainrobot ,p->cutrobot );
}
}
}
if(Within(env,p->slowrobot ,5))
{
shoot(env,p->slowrobot );
}
else
{
Kick(env,p->slowrobot ,3,3);
}
if(Within(env,p->cutrobot ,5))
{
shoot(env,p->cutrobot );
}
else
{
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -