⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 strategy.cpp

📁 FIRA机器人足球比赛5V5仿真组的一般的防守策略
💻 CPP
📖 第 1 页 / 共 4 页
字号:
			if(p->opp [0].pos .y <=43)
			{
			pos.x=80;
			pos.y =52;
			PositionAndThrough(env,p->cutrobot ,pos,125);
			}
			else
			{
			pos.x=80;
			pos.y =33;
			PositionAndThrough(env,p->cutrobot ,pos,125);   
			}
		}
			pos.x=50;
			pos.y =43;
         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 ,0);
		 }
	    break;
	   case 23:
		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
		{
			if(p->opp [0].pos .y <=43)
			{
			pos.x=83;
			pos.y =52;
			PositionAndThrough(env,p->cutrobot ,pos,125);
			}
			else
			{
			pos.x=83;
			pos.y =33;
			PositionAndThrough(env,p->cutrobot ,pos,125);
			}
		}
			pos.x=50;
			pos.y =50;
         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 ,0);
		 }
	    break;
	   case 24:
	    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
		{
			pos.x =80;
			pos.x =58;
         PositionAndThrough(env,p->slowrobot ,pos,125);
		}
		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 25:
	    Order(env);
		oppOrder(env);
		if(Within(env,p->mainrobot ,5))
		{
			shoot(env,p->mainrobot );
		}
		else
		{
			Kick(env,p->mainrobot ,p->cutrobot );
		}
		if(Within(env,p->slowrobot ,5))
		{
			shoot(env,p->slowrobot);
		}
		else
		{
			pos.x =80;
			pos.x =58;
         PositionAndThrough(env,p->slowrobot ,pos,125);
		}
		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 26:
        Order(env);
		oppOrder(env);
		if(Within(env,p->mainrobot ,5))
		{
			shoot(env,p->mainrobot );
		}
		else
		{

			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 27:
	    Order(env);
		oppOrder(env);
		if(Within(env,p->mainrobot ,5))
		{
			shoot(env,p->mainrobot );
		}
		else
		{
		Kick(env,p->mainrobot ,p->cutrobot );

		}
		if(Within(env,p->slowrobot ,5))
		{
			shoot(env,p->slowrobot);
		}
		else
		{
			pos.x =80;
			pos.x =58;
         PositionAndThrough(env,p->slowrobot ,pos,125);
		}
		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 28:
        Order(env);
		oppOrder(env);
		if(Within(env,p->mainrobot ,5))
		{
			shoot(env,p->mainrobot );
		}
		else
		{

			Kick(env,p->mainrobot ,p->cutrobot );

		}
		if(Within(env,p->slowrobot ,5))
		{
			shoot(env,p->slowrobot );
		}
		else
		{
			pos.x =74;
			pos.y =86;
			PositionAndThrough(env,p->slowrobot,pos,125);

		}
		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 29:
	    Order(env);
		oppOrder(env);
		if(Within(env,p->mainrobot ,5))
		{
			shoot(env,p->mainrobot );
		}
		else
		{
			Kick(env,p->mainrobot ,p->cutrobot );
		}
		if(Within(env,p->slowrobot ,5))
		{
			shoot(env,p->slowrobot);
		}
		else
		{
			pos.x =80;
			pos.x =58;
         PositionAndThrough(env,p->slowrobot ,pos,125);
		}
		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 30:
        Order(env);
		oppOrder(env);
		if(Within(env,p->mainrobot ,5))
		{
			shoot(env,p->mainrobot );
		}
		else
		{

			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 31:
	    Order(env);
		oppOrder(env);
		if(Within(env,p->mainrobot ,5))
		{
			shoot(env,p->mainrobot );
		}
		else
		{
		Kick(env,p->mainrobot ,p->cutrobot );

		}
		if(Within(env,p->slowrobot ,5))
		{
			shoot(env,p->slowrobot);
		}
		else
		{
			pos.x =80;
			pos.x =58;
         PositionAndThrough(env,p->slowrobot ,pos,125);
		}
		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 32:
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 33:
		   	Order(env);
			 PredictBall(env,2);
            if(shoot1(env,p->mainrobot,200 ))
			{
				shoot(env,p->mainrobot );
			}
			else 
			{

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -