Estoy usando un Gráfico de Gráficos de Datos para modelar una simulación en Haskell. La simulación está limitada a una grilla 2D que modela mi gráfico. Un nodo en cada punto de la cuadrícula de abajo contendrá un tipo de Molécula Quizás para que haya una molécula presente o simplemente Nada.Editando/Actualizando Gráficos en Haskell
1 - 2 - 3
| | |
4 - 5 - 6
| | |
7 - 8 - 9
he levantado esta representación, pero cuando se trata de la actualización de la posición de una molécula que siento que voy por el camino largo en torno al tema. Lo que he hecho hasta ahora es quitar todos los nodos a una lista de nodos. He escrito una función para intercambiar los dos elementos en esta lista de nodos. Pero ahora, cuando vuelvo a comprimir todo de nuevo, tengo problemas porque para generar un nuevo gráfico necesito una lista de vértices que obtengo fácilmente de la función de gráfico de vértices. Pero también necesito comprimirlo con la lista de vértices que toca el borde. Desafortunadamente la función Graph de Data.Graph devuelve una lista de tuplas del tipo Edge que no es inmediatamente útil para generar un gráfico hasta donde puedo ver, aunque podría escribir una función para derivar los vértices de la lista que tienen bordes a un vértice. Hacerlo parece ser suficiente trabajo para que me pregunte ¿me estoy perdiendo el punto de que existe una función de Gráfico que simplemente toma un gráfico y devuelve un gráfico con un nodo actualizado?
si uso gráficos, puedo ver si los nodos adyacentes están ocupados por otras moléculas para las comprobaciones de detección de colisión. – mikeyP
@mikeyP Pero también puedes hacerlo con arreglos, ¿o no? –
Tienes razón, debajo de un gráfico hay una matriz. Pero con un gráfico podré eliminar nodos en el gráfico, áreas por las que las moléculas no pueden pasar. No veo una forma clara de hacer eso con Arrays. – mikeyP