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

📄 showa.java

📁 用java编写的八数码算法
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
        double weightx,weighty; 
        Insets inset; 
        u=1;
	    JLabel tishi=new JLabel("请输入初始值!");
	   	gridx=0; 
        gridy=0; 
        gridwidth=1; 
        gridheight=1; 
        weightx=1; 
        weighty=1; 
        anchor=GridBagConstraints.CENTER; 
        fill=GridBagConstraints.NONE; 
        inset=new Insets(0,20,0,0); 
        ipadx=0; 
        ipady=0; 
        gbc=new GridBagConstraints(gridx,gridy,gridwidth,gridheight,weightx,weighty,anchor, fill,inset,ipadx,ipady); 
	    grid.setConstraints(tishi,gbc);
	    this.add(tishi);
	    
	    e0=new JTextField("2") ;
		gridx=1; 
        gridy=1; 
        gridwidth=1; 
        gridheight=1; 
        weightx=1; 
        weighty=1; 
        anchor=GridBagConstraints.CENTER; 
        fill=GridBagConstraints.NONE; 
        inset=new Insets(0,10,0,0);
        ipadx=30; 
        ipady=10; 
        gbc=new GridBagConstraints(gridx,gridy,gridwidth,gridheight,weightx,weighty,anchor, fill,inset,ipadx,ipady); 
	    grid.setConstraints(e0,gbc);
	    this.add(e0);
	    e0.addActionListener(this);
	    
	    e1=new JTextField("8") ;
	    gridx=2; 
        gridy=1; 
        gridwidth=1; 
        gridheight=1; 
        weightx=1; 
        weighty=1; 
        anchor=GridBagConstraints.CENTER; 
        fill=GridBagConstraints.NONE; 
        inset=new Insets(0,0,0,0); 
        ipadx=30; 
        ipady=10; 
        gbc=new GridBagConstraints(gridx,gridy,gridwidth,gridheight,weightx,weighty,anchor, fill,inset,ipadx,ipady); 
	    grid.setConstraints(e1,gbc);
	    this.add(e1);
	    e1.addActionListener(this);
	    
	    e2=new JTextField("3");
	    gridx=3; 
        gridy=1; 
        gridwidth=1; 
        gridheight=1; 
        weightx=1; 
        weighty=1; 
        anchor=GridBagConstraints.CENTER; 
        fill=GridBagConstraints.NONE; 
        inset=new Insets(0,0,0,100);
        ipadx=30; 
        ipady=10; 
        gbc=new GridBagConstraints(gridx,gridy,gridwidth,gridheight,weightx,weighty,anchor, fill,inset,ipadx,ipady); 
	    grid.setConstraints(e2,gbc);
	    this.add(e2);
	    e2.addActionListener(this);
	    
	    e3=new JTextField("1") ;
	    gridx=1; 
        gridy=2; 
        gridwidth=1; 
        gridheight=1; 
        weightx=1; 
        weighty=1; 
        anchor=GridBagConstraints.CENTER; 
        fill=GridBagConstraints.NONE; 
        inset=new Insets(0,10,0,0);
        ipadx=30; 
        ipady=10; 
        gbc=new GridBagConstraints(gridx,gridy,gridwidth,gridheight,weightx,weighty,anchor, fill,inset,ipadx,ipady); 
	    grid.setConstraints(e3,gbc);
	    this.add(e3);
	    e3.addActionListener(this);
	    
	    e4=new JTextField("6") ;
	    gridx=2; 
        gridy=2; 
        gridwidth=1; 
        gridheight=1; 
        weightx=1; 
        weighty=1; 
        anchor=GridBagConstraints.CENTER; 
        fill=GridBagConstraints.NONE; 
        inset=new Insets(0,0,0,0);
        ipadx=30; 
        ipady=10; 
        gbc=new GridBagConstraints(gridx,gridy,gridwidth,gridheight,weightx,weighty,anchor, fill,inset,ipadx,ipady); 
	    grid.setConstraints(e4,gbc);
	    this.add(e4);
	    e4.addActionListener(this);
	    
	    e5=new JTextField("4") ;
	    gridx=3; 
        gridy=2; 
        gridwidth=1; 
        gridheight=1; 
        weightx=1; 
        weighty=1; 
        anchor=GridBagConstraints.CENTER; 
        fill=GridBagConstraints.NONE; 
        inset=new Insets(0,0,0,100);
        ipadx=30; 
        ipady=10; 
        gbc=new GridBagConstraints(gridx,gridy,gridwidth,gridheight,weightx,weighty,anchor, fill,inset,ipadx,ipady); 
	    grid.setConstraints(e5,gbc);
	    this.add(e5);
	    e5.addActionListener(this);
	    
	    e6=new JTextField("7") ;
	    gridx=1; 
        gridy=3; 
        gridwidth=1; 
        gridheight=1; 
        weightx=1; 
        weighty=1; 
        anchor=GridBagConstraints.CENTER; 
        fill=GridBagConstraints.NONE; 
        inset=new Insets(0,10,0,0);
        ipadx=30; 
        ipady=10; 
        gbc=new GridBagConstraints(gridx,gridy,gridwidth,gridheight,weightx,weighty,anchor, fill,inset,ipadx,ipady); 
	    grid.setConstraints(e6,gbc);
	    this.add(e6);
	    e6.addActionListener(this);
	    
	    e7=new JTextField("0") ;
	    gridx=2; 
        gridy=3; 
        gridwidth=1; 
        gridheight=1; 
        weightx=1; 
        weighty=1; 
        anchor=GridBagConstraints.CENTER; 
        fill=GridBagConstraints.NONE; 
        inset=new Insets(0,0,0,0);
        ipadx=30; 
        ipady=10; 
        gbc=new GridBagConstraints(gridx,gridy,gridwidth,gridheight,weightx,weighty,anchor, fill,inset,ipadx,ipady); 
	    grid.setConstraints(e7,gbc);
	    this.add(e7);
	    e7.addActionListener(this);
	    
	    e8=new JTextField("5") ;
	    gridx=3; 
        gridy=3; 
        gridwidth=1; 
        gridheight=1; 
        weightx=1; 
        weighty=1; 
        anchor=GridBagConstraints.CENTER; 
        fill=GridBagConstraints.NONE; 
        inset=new Insets(0,0,0,100);
        ipadx=30; 
        ipady=10; 
        gbc=new GridBagConstraints(gridx,gridy,gridwidth,gridheight,weightx,weighty,anchor, fill,inset,ipadx,ipady); 
	    grid.setConstraints(e8,gbc);
	    this.add(e8);
	    e8.addActionListener(this);
	    
        gridx=1; 
        gridy=4; 
        gridwidth=1; 
        gridheight=1; 
        weightx=1; 
        weighty=1; 
        anchor=GridBagConstraints.NORTH; 
        fill=GridBagConstraints.NONE; 
        inset=new Insets(0,0,0,0); 
        ipadx=0; 
        ipady=0; 
        gbc=new GridBagConstraints(gridx,gridy,gridwidth,gridheight,weightx,weighty,anchor, fill,inset,ipadx,ipady); 
		ok= new JButton("查找");
		grid.setConstraints(ok,gbc);
		this.add(ok);
		ok.addActionListener(this);
		
	    gridx=2; 
        gridy=4; 
        gridwidth=1; 
        gridheight=1; 
        weightx=0; 
        weighty=0; 
        anchor=GridBagConstraints.NORTH; 
        fill=GridBagConstraints.NONE; 
        inset=new Insets(0,0,0,0); 
        ipadx=0; 
        ipady=0; 
        gbc=new GridBagConstraints(gridx,gridy,gridwidth,gridheight,weightx,weighty,anchor, fill,inset,ipadx,ipady); 
		exit= new JButton("退出");
		grid.setConstraints(exit,gbc);
		this.add(exit);
		exit.addActionListener(this);
		
	    tishi2=new JTextField("第"+u+"个结点值");
	    gridx=0; 
        gridy=1; 
        gridwidth=1; 
        gridheight=1; 
        weightx=1; 
        weighty=1; 
        anchor=GridBagConstraints.CENTER; 
        fill=GridBagConstraints.NONE; 
        inset=new Insets(0,20,0,0); 
        ipadx=0; 
        ipady=0; 
        gbc=new GridBagConstraints(gridx,gridy,gridwidth,gridheight,weightx,weighty,anchor, fill,inset,ipadx,ipady); 
	    grid.setConstraints(tishi2,gbc);
	    this.add(tishi2);
	    tishi2.addActionListener(this);
	    
		tishi1=new JLabel("无解!");
	    gridx=0; 
        gridy=2; 
        gridwidth=1; 
        gridheight=1; 
        weightx=1; 
        weighty=1; 
        anchor=GridBagConstraints.CENTER; 
        fill=GridBagConstraints.NONE; 
        inset=new Insets(0,0,0,0); 
        ipadx=0; 
        ipady=0; 
        gbc=new GridBagConstraints(gridx,gridy,gridwidth,gridheight,weightx,weighty,anchor, fill,inset,ipadx,ipady); 
	    grid.setConstraints(tishi1,gbc);
	    tishi1.setVisible(false);
	    this.add(tishi1);
	}
	public int[] getA(){
		return a;
	}
	public void actionPerformed(ActionEvent e){
		if(e.getSource().equals(ok)){
			a[0]=Integer.parseInt(e0.getText());
			a[1]=Integer.parseInt(e1.getText());
			a[2]=Integer.parseInt(e2.getText());
			a[3]=Integer.parseInt(e3.getText());
			a[4]=Integer.parseInt(e4.getText());
			a[5]=Integer.parseInt(e5.getText());
			a[6]=Integer.parseInt(e6.getText());
			a[7]=Integer.parseInt(e7.getText());
			a[8]=Integer.parseInt(e8.getText());					
	        int d[][]={{1,2,3},{8,0,4},{7,6,5}};
	        int f[]={1,2,3,8,0,4,7,6,5};
	        int s[]=new int[9];
	        int o[][]=new int[3][3];
	        s=this.getA();
	        int p[]=new int[9];
	        int k=0;
	        for(int i=0;i<3;i++){
		      for(int j=0;j<3;j++){
                o[i][j]=s[k];
                    k++;
              }
            }
	        Eight ag=new Eight(o);
	        Astar A=new Astar(ag);
	        Eight g=new Eight(d);
	        int m=ag.solve(s,f);
            if(m==0){
    	        tishi1.setVisible(true);
            }
            if(!A.opennull()&&!A.isSuccess()){
    		      tishi2.setText("第"+u+"个结点值");
    		      System.out.println("第"+u+"个结点值!");
    		      Eight q=A.FindNext();	
    		      u++;
                  int r[][]=new int[3][3];
    		      r=q.getE();
    		      e0.setText(String.valueOf( r[0][0]));
    		      e1.setText(String.valueOf( r[0][1]));
     		      e2.setText(String.valueOf( r[0][2]));
    		      e3.setText(String.valueOf( r[1][0])); 
     		      e4.setText(String.valueOf( r[1][1]));
    		      e5.setText(String.valueOf( r[1][2]));
     		      e6.setText(String.valueOf( r[2][0]));
    		      e7.setText(String.valueOf( r[2][1])); 
     		      e8.setText(String.valueOf( r[2][2]));   		        		        		      
    	   }
	       if(A.isSuccess()){
	       	g.print();
	    	JOptionPane.showMessageDialog(null,"经过"+(u-1)+"个结点成功找到目的结点") ;
            System.out.println("成功找到目的结点");
            u=1;
		    return;
	        }
		}
		if(e.getSource().equals(exit)){
			this.setVisible(false);
		}	
							
	}
	public static void main(String []args) {
		System.out.println("初始状态为:");
		System.out.println("2 8 3");
		System.out.println("1 6 4");
		System.out.println("7 5 0");
		new ShowA().show();
		}
}

⌨️ 快捷键说明

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