Cómo usar la primera búsqueda en profundidad en un laberinto

  1. Convierta su línea en elementos y coloque cada elemento en una matriz.
  2. Mire su matriz como un laberinto X, Y. Donde cada línea X e Y tienen el mismo tamaño. Por ejemplo, 24 x 24 elementos (suponiendo que su laberinto tenga simetría). El ejemplo le dará un total de 576 elementos en su laberinto de matrices. Es decir, su laberinto ahora está indexado de 0 … 575. Donde el índice 0 es su primer elemento, y el índice 575 es el 576 ‘el elemento. Elemento1 = matriz [0] y elemento576 está en la matriz [575]
  3. Ahora, lo que todos llaman un gráfico es solo una forma de almacenar valores con claves. Por ejemplo, en un hash. Una clave (elegante llamada nodo) es un índice en su matriz. Un valor será el número de pasos en el laberinto de matrices desde start_index hasta el índice actual almacenado en el gráfico (hash) como clave.
  4. Si quieres ir de un punto (start_index) a otro punto (destination_index) en tu laberinto de la manera más rápida posible. Realizas una primera búsqueda profunda desde start_index. Rellenar el gráfico (hash) con el índice actual en la búsqueda como clave, desde start_index, y darle un valor a la clave. El valor es, nuevamente, cuántos pasos tiene desde start_index en dirección XY. Por ejemplo, start_index + 1 (una clave) => 1, ya que está a un paso de start_index.
  5. Los límites en su búsqueda serán, por poner el índice en el gráfico (hash), que el índice es un elemento válido para moverse (dar un paso), y que no tiene ningún valor almacenado en el gráfico de antes. O, si tiene un valor, continúe la búsqueda solo si el valor del paso actual es inferior al valor ya almacenado en su gráfico.

Volcar el gráfico, por ejemplo, hacer un bucle a través de su matriz e imprimir el valor del gráfico si el número de índice en el bucle recoge un valor del gráfico, de lo contrario, simplemente imprima el elemento en la matriz. Algo así, sí. 🙂