Sto provando a generare casualmente un grafico diretto allo scopo di creare un puzzle game simile ai rompicapo di ghiaccio di Pokemon.
Questo è essenzialmente ciò che voglio essere in grado di generare casualmente: link .
Devo essere in grado di limitare la dimensione del grafico in una dimensione xey. Nell'esempio indicato nel link, sarebbe limitato a una griglia 8x4.
Il problema che sto incontrando non è la generazione casuale del grafico, ma la generazione casuale di un grafico, che posso mappare correttamente in uno spazio 2D, poiché ho bisogno di qualcosa (come una roccia) sul lato opposto di un nodo, per renderlo visivamente ha senso quando smetti di scivolare. Il problema con questo è che a volte la roccia finisce nel percorso tra altri due nodi o forse su un altro nodo stesso, il che causa la rottura dell'intero grafico.
Dopo aver discusso il problema con alcune persone che conosco, siamo giunti a un paio di conclusioni che potrebbero portare a una soluzione.
- Includere gli ostacoli nella griglia come parte del grafico durante la costruzione.
- Inizia con una griglia completamente piena e disegna un percorso casuale e cancella i blocchi che faranno funzionare quel percorso.
Il problema diventa quindi capire quali sono da eliminare per evitare di introdurre un percorso aggiuntivo, più breve. Stavamo anche pensando che un algoritmo di programmazione dinamica potrebbe essere utile, anche se nessuno di noi è troppo abile nel creare algoritmi di programmazione dinamica dal nulla. Qualsiasi idea o riferimento su ciò che viene ufficialmente chiamato questo problema (se si tratta di un problema grafico ufficiale) sarebbe molto utile.
Ecco alcuni esempi di ciò che ho realizzato fino ad ora posizionando casualmente blocchi e generando il grafico di navigazione dall'inizio / fine scelto. L'idea (come descritto nel link precedente) inizia con la S verde e vuoi arrivare al verde F. Lo fai muovendo su / giù / sinistra / destra e continui a muoverti nella direzione scelta fino a quando non colpisci un parete. In queste immagini, il grigio è un muro, il bianco è il pavimento e la linea viola è la lunghezza minima dall'inizio alla fine, e le linee nere e i punti grigi rappresentano i possibili percorsi.
Ecco alcuni esempi negativi di grafici generati casualmente:
Eccoalcuniesempidigraficigeneraticasualmente(omodificatimanualmente):
Ho anche notato che quelli più impegnativi quando si gioca in questo modo come un puzzle sono quelli che hanno molti nodi di alto grado lungo il percorso minimo.