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

📄 strategy.cpp

📁 FIRA机器人足球比赛5V5仿真组的一般的防守策略
💻 CPP
📖 第 1 页 / 共 4 页
字号:
	    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 + -