public void avoidThrust(Shot s)  //еʱ
	{	
		if(shotdir!=Math.abs(s.lengthY)/(Math.abs(s.lengthX)+0.001))//ӵǶȸıʱıܵķ
		{
			if(Math.abs((double)s.lengthY)/(Math.abs(s.lengthX)+0.001)>3)
			{
				if(x+30>TankClient.WIN_WIDTH||isHitWall(new Rectangle(x+20,y-20,10,40)))
				{ setMoveDir(Tank.TANK_DIR.L); }
				else if(x-30<0||isHitWall(new Rectangle(x-30,y-20,10,40)))
				{ setMoveDir(Tank.TANK_DIR.R); }
				else
				{
					int change=Tank.rn.nextInt(2);
					switch(change)
					{
						case 1:{ setMoveDir(Tank.TANK_DIR.L); }break;
						case 0:{ setMoveDir(Tank.TANK_DIR.R); }break;
						default: break;
					}
				}
			}
			else if(Math.abs((double)s.lengthY)/(Math.abs(s.lengthX)+0.001)<0.3)
			{
				if(y+30>TankClient.WIN_HEIGHT||isHitWall(new Rectangle(x-20,y+20,40,10)))
				{ setMoveDir(Tank.TANK_DIR.U); }
				else if(y-30<0||isHitWall(new Rectangle(x-20,y-30,40,10)))
				{ setMoveDir(Tank.TANK_DIR.D); }
				else
				{
					int change=Tank.rn.nextInt(2);
					switch(change)
					{
						case 1:{ setMoveDir(Tank.TANK_DIR.U); }break;
						case 0:{ setMoveDir(Tank.TANK_DIR.D); }break;
						default: break;
					}
				}
			}
			else
			{	
				int change=Tank.rn.nextInt(4);
				
				switch(change)
				{
					case 3:{ setMoveDir(Tank.TANK_DIR.U); }break;
					case 2:{ setMoveDir(Tank.TANK_DIR.D); }break;
					case 1:{ setMoveDir(Tank.TANK_DIR.L); }break;
					case 0:{ setMoveDir(Tank.TANK_DIR.R); }break;
					default: break;
				}
			}
			this.move();
			
			shotdir=Math.abs(s.lengthY)/(Math.abs(s.lengthX)+0.001);
		}		
	}