Estoy escribiendo un juego de laberinto dinámico en el que después de cada cambio la estructura del laberinto cambiará (Algunas puertas se cerrarán y algunas puertas se abrirán. Algo así como Triwazard en HP4). ¿Alguien puede sugerirme qué estructura de datos será la más adecuada para representar esto?Estructura de datos para representar un laberinto
Respuesta
¿El laberinto será una cuadrícula rectangular? ¿Algo más?
También depende de cuánto del mapa contendrá información útil (pases u objetos).
Si es una cuadrícula rectangular y la mayoría de los cuadrados de cuadrícula contendrán ALGO, una buena estructura de datos es una matriz 2D (matriz de matrices), cada elemento de la matriz representa 1 fila, cada elemento de las matrices interiores representa 1 celda en esa fila, que es un objeto que contiene datos pertenecientes a esa celda (a qué celdas vecinas se puede mover, qué contiene la celda, hay un carácter en ella).
Sin embargo, si el laberinto no es un rectángulo O si la mayoría de las celdas de un gran laberinto no contienen ninguna utilidad (por ejemplo, bloques no transitables), una buena estructura de datos es un gráfico.
Cada vértice del gráfico es una celda que es aceptable. Los bordes representan los pares de celdas entre los que puede moverse (puede convertirlo en un gráfico dirigido si algunas puertas son unidireccionales). Cada vértice/celda es un objeto que contiene información en esa celda (por ejemplo, su ubicación en el laberinto físico que se dibujará, etc.).
La ventaja de la estructura del conjunto de matrices es que es MUY fácil de dibujar, y bastante sencillo de procesar (cualquier movimiento es solo en/de-cremento de un índice). Agregar/eliminar paredes es tan fácil como cambiar datos en 2 elementos de matriz de celdas vecinas.
El beneficio de la estructura gráfica es que ocupa mucho menos espacio si los laberintos son muy escasos (por ejemplo, solo se pasa 1/100 del campo); es la única estructura que puede representar una geometría aleatoria (por ejemplo, una cuadrícula no rectangular) y el procesamiento es bastante sencillo. Añadir/quitar paredes es fácil ya que solo agrega un borde a un gráfico.
- 1. Estructura de datos inteligente para representar un círculo en capas
- 2. Estructura de datos para un mundo aleatorio
- 3. cómo representar una extraña gráfica de alguna estructura de datos
- 4. La mejor estructura de datos para representar un tablero de juego
- 5. Estructura de datos y algoritmo para representar/asignar espacio libre en un archivo
- 6. ¿Por qué utilizar una estructura de datos de árbol para representar datos en un juego de aventuras de texto?
- 7. tipo de datos para representar un gran decimal en java
- 8. Qué estructura/biblioteca de datos Java utilizas para un árbol
- 9. Para representar datos simples en R
- 10. Estructura de datos para datos espaciales
- 11. Cómo crear un laberinto de pacman aleatorio
- 12. obtener rata fuera de un laberinto
- 13. ¿Cuál es la mejor estructura de datos para representar un tablero de damas cuando la velocidad es la principal preocupación?
- 14. Estructura de datos utilizada para la estructura de directorios?
- 15. laberinto Pacman en Java
- 16. Usando una pila para atravesar y resolver un laberinto - Java
- 17. Algoritmo (s) para encontrar entidades en movimiento en un laberinto
- 18. Estructura de datos para el juego Puntos y cuadros
- 19. Qué estructura de datos de nodo usar para un trie
- 20. Estructura de datos bidireccionales para esta situación
- 21. Estructura de datos espaciales para juegos
- 22. Cómo representar los datos de audio estéreo para FFT
- 23. Estructura de datos para elegir elementos aleatorios?
- 24. Estructura de datos para dados cargados?
- 25. Estructura de datos para almacenar eventos recurrentes?
- 26. Estructura de datos para almacenar Rangos
- 27. Estructura de datos para niveles en juegos
- 28. ¿Estructura de datos eficiente para las etiquetas?
- 29. marcos para representar el procesamiento de datos como una tubería
- 30. Estructura de la base de datos para estructura de datos de árbol
1) ¿Qué estructuras de datos HA TENIDO en cuenta? 2) Nunca asumas que las personas conocen todas las pequeñas abreviaturas que haces. HP4 no es exactamente una abreviatura conocida mundialmente para el cuarto libro de la serie Harry Potter. – DVK