> Programación
Este algoritmo tiene como objetivo encontrar las celdas a las que puede llegar un puerro a partir de una celda dada y un número de PM.
Esto da como resultado una función que toma una celda y un número como parámetro, y que devolverá una matriz de celdas.
Si le informan sobre las funciones "getAccessibleCells" o "getReachableCells", o cualquier otro nombre similar, ahora sabrá de qué se trata.
Desde el momento en que quieras planificar tus viajes, esta función será imprescindible.
Conocer las celdas a las que puedes ir te permite, por ejemplo, elegir la celda donde sufrirás el menor daño potencial, o ver a dónde podrías moverte para infligir daño a tu oponente.
Este algoritmo se utiliza principalmente en el algoritmo Cache-cache (Le cache-cache).
Por sí mismo, es bastante simple implementar una forma de hacer que las celdas sean accesibles. El método más simple es probar la distancia a cada celda en el mapa usando getPathLength.
Pero esta función tiene un alto costo operativo. Así que úsalo en cada celda del mapa... Tu consumo de operación se dispararía.
Una solución un poco más inteligente sería primero encontrar las celdas dentro del rango de PM, luego verificar que se pueda acceder a ellas a través de getPathLength.
Si estas dos soluciones son factibles, tienen un costo operativo que rápidamente se vuelve alto.
Si es un principiante y la solución que discutiremos a continuación todavía le parece un poco complicada, siéntase libre de conformarse con estas soluciones al principio. Al comienzo del juego, no necesariamente tendrás que hacer muchos cálculos, y en el nivel bajo, no tendrás una gran cantidad de MP. Por lo tanto, puede permitirse el lujo de utilizar estas soluciones.
Hacer que sus celdas sean accesibles a través de estos métodos será sencillo.
Pero surge un primer problema cuando tu número de PM aumenta. Cuanto más alto suba, más cuadrados habrá para probar, por supuesto. En el peor de los casos, si recorre todo el mapa con getPathLength, debería terminar con una factura de aproximadamente 4 millones de operaciones, "solo".
Baste decir que esto reduce en gran medida las operaciones disponibles para otros algoritmos como Combos, o el Damage Map.
Y eso no es todo ! Hay otro problema: no estás solo en una pelea. Definitivamente necesitarás obtener las celdas accesibles de tus oponentes para poder protegerte de sus ataques. Y si los diversos puerros comienzan a convocar bulbos, eso es aún más células para calcular.
En definitiva, si te empiezas a querer calcular las celdas accesibles de todo este mundillo con estos métodos, te costará mucho más que un brazo.
Así, utilizamos otro método, mucho más efectivo: ¡Ir de vecino a vecino!
Primero, ¿qué es un "prójimo"? Los vecinos de una celda son simplemente las celdas adyacentes a ella. Y obviamente estamos hablando de las celdas que tienen un lado común, las celdas que están directamente al lado de ellas, y no las que están en diagonal.
Así, las celdas que están en las esquinas del mapa tienen un solo vecino. Las celdas en los bordes tienen dos. Y todos los demás tienen cuatro.
Lo primero que deberá saber hacer es recuperar los vecinos de una celda. Mediante el uso de las funciones getCellX, getCellY y getCellFromXY, puede determinar fácilmente estos famosos vecinos.
Una vez que pueda recuperar los vecinos de una celda, debe determinar si esa celda es "aceptable". Claramente, si la celda es un obstáculo o hay un puerro allí, tu puerro no podrá moverse sobre él.
Para saber esto, necesitará las funciones isObstacle, isEmptyCell, isLeek o getCellContent.
El principio es en realidad bastante simple. Incluso si no es necesariamente fácil de configurar para un principiante en programación.
Por lo tanto, tu puerro está en una celda y tiene un cierto número de MP para mover. La celda en la que se encuentra actualmente está a una distancia de 0 PM; Hasta ahora tan bueno...
Si tu puerro tiene 1 MP, ¿adónde puede moverse? Bueno, en los vecinos libres de su celda inicial.
¿Qué pasa si tiene 2 MP? Por lo tanto, puede moverse durante 1 PM en los vecinos libres de su celda inicial. Pero también, para las 2 PM, en los vecinos libres de los vecinos libres de la celda inicial.
Y así enseguida...
<img src="https://i.ibb.co/7jdzBZr/Tuto-Cell-Accesible-Iteración.gif" alt="Tuto-Cell-Accesible -Iteración" bor
Impossible de charger les données du jeu.
Vérifiez votre connexion et réessayez.