📄 eightdata.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 + -