Java样例是0,请问有哪里错了吗,谢谢大佬!
查看原帖
Java样例是0,请问有哪里错了吗,谢谢大佬!
819614
xubai66楼主2022/11/2 11:23
import java.util.Scanner;
public class 草稿{	
	
	static int xf,yf,xn,yn;//二者现在的坐标
	static int lxf,lyf,lxn,lyn;//二者移动后的的坐标
	static int af=1,an=1;//方向默认向北
	static char a[][]=new char[10][10];
    public static void farmer(int xf,int yf,int af)
    {
    	if(af==1)//北
    	{
    		lxf=xf-1;
    		lyf=yf;
    	}
        if(af==2)//东
        {
        	lxf=xf;
        	lyf=yf+1;
        }
        if(af==3)//南
        {
        	lxf=xf+1;
        	lyf=yf;
        }
        if(af==4)//西
        {
        	lxf=xf;
        	lyf=yf-1;
        }
        //判断
        if(a[lxf][lyf]=='.' &&lxf<=9 &&lyf<=9  &&lxf>=0 &&lyf>=0)
        {
        	xf=lxf;
        	yf=lyf;
        }
        else
        {
        	af++;
        	if(af>4)
        	{
        		af=1;
        	}
        }
    
    }
    
    public static void niu(int xn,int yn,int an)
    {
    	if(an==1)//北
    	{
    		lxn=xn-1;
    		lyn=yn;
    	}
        if(an==2)//东
        {
        	lxn=xn;
        	lyn=yn+1;
        }
        if(an==3)//南
        {
        	lxn=xn+1;
        	lyn=yn;
        }
        if(an==4)//西
        {
        	lxn=xn;
        	lyn=yn-1;
        }
        //判断
        if(a[lxn][lyn]=='.' &&lxn<=9 &&lyn<=9  &&lxn>=0 &&lyn>=0)
        {
        	xn=lxn;
        	yn=lyn;
        }
        else
        {
        	an++;
        	if(an>4)
        	{
        		an=1;
        	}
        }
    
    }
	public static void main(String[] args) {
      Scanner in = new Scanner(System.in);
      int time=0;
      for(int i=0;i<10;i++)
      {
    	   String s=in.next();
    	  for(int k=0;k<10;k++)
    	  {
    		  a[i][k]=s.charAt(k);
    		  if(a[i][k]=='F')
    		  {
    			  xf=i;
    			  yf=k;
    			  a[i][k]='.';
    		  }
    		  if(a[i][k]=='C')
    		  {
    			  xn=i;
    			  yn=k;
    			  a[i][k]='.';
    		  } 
    	  }      
      }
	
      //开始运行
      while(true)
      {
    	  farmer(xf,yf,af);
    	  niu(xn,yn,an);
    	  time++;
    	  if(time>1000000)
    	  {
    		  System.out.print("0");
    		  break;
    	  }
          if(xf==xn &&yf==yn)
          {
        	  System.out.print(time);
        	  break;
          }
      }
   }
}
2022/11/2 11:23
加载中...