8使用Bredth First搜索的Java拼图
我知道Bredth First搜索会迭代节点,然后转到下一个最大的节点。我也不知道这和8字谜游戏有什么关系。这是我的密码:8使用Bredth First搜索的Java拼图,java,Java,我知道Bredth First搜索会迭代节点,然后转到下一个最大的节点。我也不知道这和8字谜游戏有什么关系。这是我的密码: public static void breadthFirstSearch(int[] num, int m, Vector solution) { Queue t = new PriorityQueue(); ArrayList Visited = new ArrayList(); blankNode = 0; int temp;
public static void breadthFirstSearch(int[] num, int m, Vector solution) {
Queue t = new PriorityQueue();
ArrayList Visited = new ArrayList();
blankNode = 0;
int temp;
printArray(num);
for (int i : num) {
if (num[i] == m) {
blankNode = i;
System.out.println(blankNode);
}
}
System.out.println(blankNode);
printArray(num);
}
private static void printArray(int[] num) {
for (int i : num) {
System.out.print(num[i] + ",");
}
System.out.println();
}
private static int[] moveUp(int[] num, int blankSpace) {
int temp = 0;
if (blankSpace != 6 && blankSpace != 1 && blankSpace != 2) {
blankNode = blankSpace - 3;
temp = num[blankSpace - 3];
num[blankSpace - 3] = num[blankSpace];
num[blankSpace] = temp;
}
return num;
}
private static int[] moveLeft(int[] num, int blankSpace) {
int temp;
if (blankSpace != 0 && blankSpace != 3 && blankSpace != 6) {
blankNode = blankSpace - 1;
temp = num[blankSpace - 1];
num[blankSpace - 1] = num[blankSpace];
num[blankSpace] = temp;
}
return num;
}
private static int[] moveDown(int[] num, int blankSpace) {
int temp;
if (blankSpace != 6 && blankSpace != 7 && blankSpace != 8) {
blankNode = blankSpace + 3;
temp = num[blankSpace + 3];
num[blankSpace + 3] = num[blankSpace];
num[blankSpace] = temp;
}
return num;
}
private static int[] moveRight(int[] num, int blankSpace) {
int temp;
if (blankSpace != 2 && blankSpace != 5 && blankSpace != 8) {
blankNode = blankSpace + 1;
temp = num[blankSpace + 1];
num[blankSpace + 1] = num[blankSpace];
num[blankSpace] = temp;
}
return num;
}
现在,在方法breadthFirstSearch中,我需要使用num数组播放tiles。因此,将num数组想象为
045
789
312
和空白节点是7,我需要把它通过右下角的数字交换到右下角。m给了我一个空白的数字。这里如何使用呼吸优先搜索来实现这一点?我是否需要检查所有可能的组合并选择正确的组合?请帮助。
那么我们应该做你的家庭作业吗?如果你觉得你必须在dropbox上链接描述和代码,而不是直接发布在这里,我觉得这对So来说太多了,因此超出了范围。到目前为止你尝试了什么?你在哪里失败了?@StimpsonCat绝对不是,我所要求的只是一个解释,不是为我做的。@Arseniy堆栈溢出不是这样工作的。你必须问一个非常具体的问题,问题,bug等等。请看:为了理解为什么像这样的帖子会被否决。好的,我把这篇帖子拿下来,很抱歉占用你的时间