Bienvenidos de nuevo a la segunda parte de esta sección sobre la Búsqueda de Estrellas.
Así que lo que vamos a hacer ahora es crear nosotros mismos un laberinto y luego construir en el algoritmo de búsqueda
de caminos utilizando una estrella.
Vas a necesitar iniciar un archivo que viene con esta conferencia.
Ahora en él, vas a encontrar una escena llamada A Star Path, y hay algunos scripts que
ya están ahí que van a construir un laberinto para ti desde mi curso de construcción de laberintos.
Si te interesa, el enlace está aquí en la pantalla para ti.
Ahora, realmente no necesitas saber mucho sobre el trasfondo de lo que sucede dentro de la clase Laberinto,
aunque puedes echar un vistazo porque básicamente vamos a estar probando si una posición es igual
a otra posición un poco más adelante.
Así que en este punto, si pulsamos el play, verás que el código genera un simple laberinto como este, por el que
vamos a navegar ahora.
Es un laberinto aleatorio que utiliza un algoritmo recursivo.
Así, cada vez que pulses el play, tendrás un mapa diferente con el que trabajar.
Bien, empecemos.
Queremos crear un nuevo archivo de C-sharp y lo vamos a llamar Buscar la ruta de una estrella.
Bien, abramos eso.
Ahora, en la parte superior, vamos a utilizar la biblioteca de enlaces para hacer algo de clasificación.
Así que sólo hay que incluir el enlace del punto del sistema.
Y luego vamos a crear una nueva clase.
Y esta clase, básicamente, llevará la cuenta de todas las posiciones del mapa.
Así que todos esos nodos, los vecinos con los pequeños marcadores que pondremos en ellos, los pondremos
en una nueva clase.
Porque esencialmente, supongo que cuando haces esto, cuando estás construyendo tu entorno de juego, no
vas a tener marcadores y todo eso que aparece.
Sólo vas a ejecutarlo y creará tu camino.
Pero queremos recorrerlo para entender bien lo que está pasando.
Así que vamos a hacer este marcador de ruta de clase pública y va a tener bastantes cosas aquí.
Así que en primer lugar, va a tener una ubicación de mapa público, que será su ubicación
en el laberinto, y luego un flotador público para G y un público.
Flotador para H y adivinó un flotador público para F.
A continuación, también vamos a tener un objeto de juego público, que será el propio marcador físico.
Así que esas cajas de color que he hecho y luego tendremos un marcador de ruta pública para los padres.
Bien, ahora vamos a hacer un constructor.
Así que el marcador de camino público y vamos a pasar a través de la ubicación del mapa l.
Flotador para G.
Flotador para H.
Flotador para el juego F.
Objeto para el marcador.
Que son esos prismas rectangulares que tengo marcando el camino mientras da la vuelta.
Y también, vamos a tener un marcador de ruta para que PE pase por el padre.
Luego dentro de aquí sólo asignamos esos valores.
Así que la ubicación es igual a l, g es igual a g, h es igual a h.
F es igual a F.
Este marcador de puntos es igual al marcador.
Y por último, vamos a ir padre igual a P.
Ahora mismo.
También vamos a tener que comparar si un marcador de ruta es el mismo que otro marcador de
ruta, y por lo tanto vamos a necesitar crear un override para el método equals.
Así que voy a poner el final de mi clase allí, y aquí tendremos public override bool equals.
Y por supuesto, no vamos a utilizar lo que nos proporciona, sino que voy a dejar esto como un reto
para que completes lo que va dentro de este método de igualdad como una pista.
Echa un vistazo dentro de la clase Maze porque también tiene un método override equals y prácticamente quieres el mismo
código que tiene ese.
Poner en pausa un vídeo ahora.
Cuando volvamos, revisaré el código para ti.
De acuerdo.
Cómo te fue con esas igualdades.
Si vamos al código del laberinto y echamos un vistazo al que hay aquí para nuestra ubicación en el mapa, es bastante
sencillo.
Bien, es una prueba.
Si los objetos están vacíos o no son el mismo objeto, y entonces es sólo la comprobación de la X y la Z para nuestra ubicación
en el mapa.
Ahora voy a hacer trampa y agarrar este código y también que obtener hash porque usted tendrá el mismo problema
de nuevo en la estrella A.
Tomemos eso y pongámoslo aquí y luego podemos ir a editarlo.
Ahora, ¿cómo decimos que el marcador de trayectoria es el mismo que otro marcador de trayectoria?
Bueno, va a ser en el mismo lugar y ya tenemos las igualdades escritas para la ubicación del mapa.
Así que aquí abajo, en vez de comprobar la X y la Z, aunque podrías comprobar las x individuales
o la Z, puedes simplemente ir a la ubicación, que es tu ubicación en el mapa igual.
Marcador de ruta para el objeto.
Ubicación del punto así.
Así que esto es llamar a los iguales que están en la clase de ubicación del mapa.
De acuerdo.
Y con nuestro código hash de obtención, hemos terminado.
Ahora podemos pasar a crear nuestra ruta de búsqueda.
Asta Y sabes qué, voy a dejar eso para el próximo video para que lo armemos y luego
lo probemos.