Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

156
Vistas
8 Rompecabezas en Java usando Bredth-First Search

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 312

y 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.

over 4 years ago · Santiago Trujillo
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda