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

📄 eightdata.java

📁 使用java重新解决八数码问题
💻 JAVA
字号:
//状态类
//import java.util.Stack;
//import java.util.*;

public class EightData {
	int state[][] = {{1,3,0},{7,2,8},{6,5,4}};
	int preXofZero , preYofZero;
	int curXorZero , curYofZero;
	int g = 0;          //g函数
	int f = 0;          //f函数
	EightData former;
	EightData latter;
	
	public EightData(){   //构造
		preXofZero = -1;
		preYofZero = -1;
		curXorZero = -1;
		curYofZero = -1;
		g = -1;
		f = -1;
		former = null;
		latter = null;
	}
	
	public EightData(EightData eData){   //拷贝构造
		for(int i=0;i<3;i++)
			for(int j=0;j<3;j++){
				state[i][j] = eData.state[i][j];
			}
		preXofZero = eData.preXofZero;
		preYofZero = eData.preYofZero;
		g = eData.g;
		f = eData.f;
		former = eData.former;
		latter = eData.latter;
	}
	
	public void display() {
		for(int i=0;i<3;i++){
			for(int j=0;j<2;j++) {
				System.out.print(state[i][j]+" ");
			}
			System.out.println(state[i][2]);
		}
		System.out.println("=====");
	}
	
	public void displayResult(EightData e) {
		//Stack<EightData> list = new Stack<EightData>();
		int steps = 0;
		while(e.former!=null) {
			e.former.latter = e;
			e = new EightData(e.former);
			//steps++;
		}
		while(e.latter!=null) {
			e.display();
			steps++;
			e = new EightData(e.latter);
		}
		System.out.println("1 2 3");
		System.out.println("8 0 4");
		System.out.println("7 6 5");
		System.out.println("=====");
		System.out.println("Problem solved!");
		System.out.println("Totally "+ steps +" step(s)!");
	}
}

⌨️ 快捷键说明

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