Estoy tratando de implementar el primer algoritmo de búsqueda de profundidad en mi juego. He estado estudiando esta página web: http://www.mazeworks.com/mazegen/mazetut/index.htm, solo para descubrir que no podría usarla con bloques en lugar de Paredes. Lo que quiero decir con bloques es un cuadrado que cubre toda la celda, en lugar de solo los bordes. Pensé que sería más fácil hacerlo de esta manera, pero ahora no estoy tan seguro. ¿Alguien ha hecho esto? ¿Si es así, cómo? (psuedocode está bien). O, ¿debería ir con el método de las paredes, si es más fácil?Algoritmo de generación de laberinto en profundidad con bloques en lugar de paredes
6
A
Respuesta
4
dependiendo de lo que realmente desee lograr, tengo dos soluciones para usted. ambos son básicamente el algoritmo presentado en el sitio web al que se ha hecho referencia.
1.) hay bloques en las posiciones predefinidas en su laberinto
- ejecutar el algoritmo en una cuadrícula
2*k+1
- asumen la numeración de sus células empieza a arriba a la izquierda con (0,0). marque todas las celdas con 2 coordenadas impares (
(2*p+1, 2*q+1); p,q < k
) como bloques. - ejecuta el algoritmo modificado desde su fuente en las celdas restantes ('celdas pares'). las modificaciones son:
- inicio con una célula incluso escogido al azar
- una 'célula vecina' es el segundo pero la próxima celda en cualquier dirección de la red; es decir, 'salta' sobre un ladrillo.
- en lugar de derribar la pared entre celdas, , convierte el bloque en una celda accesible. Sin embargo , esta célula no será considerado por la selección y dar marcha atrás
2.) en lugar de muros de separación celdas que desea bloques.
antes de iniciar el algoritmo, marque cualquier número de celdas como bloques. proceda como se indica en su fuente, pero nunca considere ninguna de las celdas de bloque. tendrá que tomar precauciones especiales si quiere garantizar accesibilidad completa en su laberinto. un esquema simple sería nunca marcar una celda como un bloque que tiene más de 1 bloque como vecinos.
Espero que estas ideas se adaptan a sus necesidades,
mejores saludos, Carsten
Cuestiones relacionadas
- 1. Optimal algoritmo de generación de laberinto multijugador
- 2. Algoritmo para generación de laberinto sin callejones sin salida?
- 3. Algoritmo de resolución de laberinto en C++
- 4. laberinto Pacman en Java
- 5. Cómo crear un laberinto de pacman aleatorio
- 6. Algoritmo (s) para encontrar entidades en movimiento en un laberinto
- 7. ¿Cuál es el mejor algoritmo de generación de mapas de profundidad?
- 8. Algoritmo de generación de curva poligonal cerrada simple
- 9. Bloques en lugar de performSelector: withObject: afterDelay:
- 10. Algoritmo de generación de doble hélice
- 11. Forma correcta de copiar en profundidad con el constructor de copia en lugar de Object.clone
- 12. ¿Mejor algoritmo de generación/simulación de rayos?
- 13. Error con optimalidad en Profundidad de Profundización Iterativa Primer algoritmo de búsqueda
- 14. Algoritmo para la generación única de CD-KEY con validación
- 15. obtener rata fuera de un laberinto
- 16. ¿Solución no exponencial al problema del laberinto?
- 17. Usando una pila para atravesar y resolver un laberinto - Java
- 18. caché de Firefox algoritmo de generación de clave hash error
- 19. Detectar ciclos en un gráfico de genealogía durante una búsqueda de profundidad en primer lugar
- 20. Uso de bloques dentro de bloques en Objective-C: EXC_BAD_ACCESS
- 21. ¿Cuál es el algoritmo detrás de la generación de buscaminas
- 22. contraseña mnemotécnico algoritmo de generación de teclados QWERTY
- 23. Profundidad de excepción en log4j
- 24. ¿Cuál es el algoritmo para generar el laberinto en el juego Netwalk?
- 25. mezcla de texturas transparentes con profundidad
- 26. Generación de parches binarios en C#
- 27. Estructura de datos para representar un laberinto
- 28. Algoritmo de generación de números aleatorios de código abierto en C++?
- 29. Escribir en el búfer de profundidad sin pruebas de profundidad en OpenGL (sin sombreado)
- 30. Complejidad del tiempo del algoritmo del gráfico profundidad-primer
no es un bloque de sólo una célula que tiene las cuatro paredes? –
tal vez, pero ¿y si pudiera eliminar todo el bloque, y no solo una de sus paredes ... buena pregunta sin embargo. – Xedfire
Sin más información sobre su aplicación en particular, es difícil decir si puede aplicar ese primer algoritmo de generación de laberinto de profundidad. Como dices, está diseñado para funcionar con células que tienen paredes individuales en lugar de celdas "bloqueadas". –