He creado un mapa de altura aleatorio y ahora quiero crear ríos. He creado un algoritmo basado en un * para hacer que los ríos fluyan de los picos al mar y ahora estoy en la búsqueda de encontrar un algoritmo elegante para representarlos.
Es una cuadrícula 2D cuadrada. Las celdas que pasa el río tienen un valor entero simple con esta forma: rivernumber && pointOrder. Es decir: 10, 11, 12, 13, 14, 15, 16 ... 1 + N para el primer río, 20,21,22,23 ... 2 + N para el segundo, etc. Esto se crea en el mapea el tiempo de generación de la cuadrícula y se ejecuta solo una vez, cuando se genera el mundo.
Quería tratar cada río como un vector, pero hay un problema, si el mismo río tiene ramas (porque pongo algo de ruido para generar ramas), no puedo simplemente conectar los puntos en orden.
La segunda alternativa es generar un algoritmo complejo donde analice cada punto, verifique si el siguiente no es una rama, si es así, active otro algoritmo que se encargue de la rama y luego regrese al río principal, etc. Muy complejo e poco elegante.
Quizás haya una solución en el algoritmo de generación mundial o en el algoritmo de representación de río que se usa comúnmente en estos casos y que no conozco.
¿Algun consejo? ¡¡Gracias!!