Ok, entiendo que Bredth First Search itera los nodos y va al siguiente que es el más grande. Tampoco tengo idea de cómo se relaciona exactamente eso con el 8 Puzzle Game. Aquí está mi código:
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; }Ahora, en el método widthFirstSearch, necesito reproducir mosaicos con la matriz num. Así que imagina la matriz num como
045 789 312y el nodo en blanco es 7, necesito bajarlo a la esquina inferior derecha solo intercambiándolo con los números de arriba a la derecha o a la izquierda. m me da el número que está en blanco. ¿Cómo se puede usar aquí la búsqueda primero con la respiración para hacer esto? ¿Solo necesito verificar todas las combinaciones posibles y elegir la correcta? Por favor ayuda.