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

📄 复件 qipan.java

📁 这里面有JAVA和C的骑士问题的一些求解方法 大家可以做为参考 有什么问题可以在这里留言
💻 JAVA
字号:
import java.awt.*;
import java.applet.*;
public class Qipan extends Applet
   {    int zhuangtai[][]=new int[360][360];
        int fanhui[]=new int[2];
        int aa[]=new int[2];
       
        
        int panduan(int m,int n){
       	int k=0;
       	if(((m+100)<=360)&&((n+50)<=360)&&((zhuangtai[m+100][n+50])==0))
       	k=k+1;
       	else if(((m+100)<=360)&&((n-50)<=360)&&((zhuangtai[m+100][n-50])==0)&&((n-50)>=10))
       	k=k+1;
       	else if(((m-100)<=360)&&((n-50)<=360)&&((zhuangtai[m-100][n-50])==0)&&((m-100)>=10)&&((n-50)>=10))
       	k=k+1;
       	else if(((m-100)<=360)&&((n+50)<=360)&&((zhuangtai[m-100][n+50])==0)&&((m-100)>=10))
       	k=k+1;
       	else if(((m+50)<=360)&&((n-100)<=360)&&((zhuangtai[m+50][n-100])==0)&&((n-100)>=10))
       	k=k+1;
       	else if(((m+50)<=360)&&((n+100)<=360)&&((zhuangtai[m+50][n+100])==0))
       	k=k+1;
       	else if(((m-50)<=360)&&((n-100)<=360)&&((zhuangtai[m-50][n-100])==0)&&((m-50)>=10)&&((n-100)>=10))
       	k=k+1;
       	else if(((m-50)<=360)&&((n+100)<=360)&&((zhuangtai[m-50][n+100])==0)&&((m-50)>=10))
       	k=k+1;
       	return k;
       	}
       	
       	
      void nage(int m,int n)
         
       { 	
         int s1=8,s2=8,s3=8,s4=8,s5=8,s6=8,s7=8,s8=8,p1=0,p2=0;
          int low=s1;
       	 if(((m+100)<=360)&&((n+50)<=360)&&((zhuangtai[m+100][n+50])==0))
       	 {s1=panduan(m+100,n+50);
       	  p1=m+100;p2=n+50;
         } 
        else if(((m+100)<=360)&&((n-50)<=360)&&((zhuangtai[m+100][n-50])==0)&&((n-50)>=10))
       	 {s2=panduan(m+100,n-50);
       	  if(s2<low) {low=s2;p1=m+100;p2=n-50;}
       	  //else ;
       	}
       	
       	else if(((m-100)<=360)&&((n-50)<=360)&&((zhuangtai[m-100][n-50])==0)&&((m-100)>=10)&&((n-50)>=10))
       	{s3=panduan(m-100,n-50);
         if(s3<low) {low=s3;p1=m-100;p2=n-50;}
       	  //else ;
        }
       	else if(((m-100)<=360)&&((n+50)<=360)&&((zhuangtai[m-100][n+50])==0)&&((m-100)>=10))
       	{s4=panduan(m-100,n+50);
         if(s4<low) {low=s4;p1=m-100;p2=n+50;}
       	//  else ;
        }
       	else if(((m+50)<=360)&&((n-100)<=360)&&((zhuangtai[m+50][n-100])==0)&&((n-100)>=10))
       	{s5=panduan(m+50,n-100);
         if(s5<low) {low=s5;p1=m+50;p2=n-100;}
       	  //else ;
        }
       	else if(((m+50)<=360)&&((n+100)<=360)&&((zhuangtai[m+50][n+100])==0))
       	{s6=panduan(m+50,n+100);
         if(s6<low) {low=s6;p1=m+50;p2=n+100;}
       	//  else ;
        }
       	else if(((m-50)<=360)&&((n-100)<=360)&&((zhuangtai[m-50][n-100])==0)&&((m-50)>=10)&&((n-100)>=10))
       	{s7=panduan(m-50,n-100);
         if(s7<low) {low=s7;p1=m-50;p2=n-100;}
       	  //else ;
        }
       	else if(((m-50)<=360)&&((n+100)<=360)&&((zhuangtai[m-50][n+100])==0)&&((m-50)>=10))
       	{s8=panduan(m-50,n+100);
       	 if(s8<low) {low=s8;p1=m-50;p2=n+100;}
       	  //else ;
       	} 
       	zhuangtai[p1][p2]=8;
       	aa[0]=p1;
       	aa[1]=p2;
      }
 
  
  
  
  
    public void paint(Graphics g)
    {
         int y=10;
    
       for(int i=1;i<9;i++)
         { int x=10;
     
          for(int j=1;j<9;j++)
            { if(  (((i%2)==0)&&((j%2)==0))||(((i%2)!=0)&&((j%2)!=0) ) )
                { g.setColor(Color.red);
		       	  g.fillRect(x,y,50,50);
		       	}
		      else
		      {g.setColor(Color.blue);
		       	  g.fillRect(x,y,50,50);
		      }
			      x+=50;	
         	   
            }	
         	      y+=50;
        }
       
       
       g.setColor(Color.yellow);
       g.fillOval(10,10,50,50);
       try {Thread.sleep(500);}
       catch(Exception e){return;}
       zhuangtai[10][10]=1;
         


       	     int m=10;
             int n=10; 
             nage(m,n);
             g.setColor(Color.yellow);
             g.fillOval(aa[0],aa[1],50,50);
             try {Thread.sleep(500);}
             catch(Exception e){return;}
             
             
             for(int z=0;z<62;z++)
              {
              	nage(aa[0],aa[1]);
              	g.setColor(Color.yellow);
                g.fillOval(aa[0],aa[1],50,50);
                try {Thread.sleep(500);}
                catch(Exception e){return;}
              }
    }  
}
 	

⌨️ 快捷键说明

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