Pathfinding demo

E quando ben pensi di poter andare tranquillo… c’è che mi sono divertito a sviluppare qualcosa di un po’ più interattivo, mentre continuo a studiare generazione procedurale, e ne è uscito un demo simpatico che illustra qualche caratteristica del pathfinding, nell’implementazione Javascript di cui vi parlavo ieri.
Ora, non credo che questo blog diventerà mai un sito sulla programmazione, avrei già in testa un articolo o due su argomenti molto diversi, spero nella prossima settimana. Aggiungere una nuova sezione è deleterio, direbbero i SEO oriented.
Ma noi qua ce ne freghiamo, e se buttare giù un migliaio di righe di codice dà soddisfazione, val la pena condividere i risultati.

Pathfinding demo
Il demo in azione

La demo è raggiungibile nel mio sito, a questo link. È possibile impostare col mouse i punti di inizio e fine del path di ricerca, generare una distribuzione randomica di punti “ostacolo” oppure disegnare a mano sul canvas per poi vedere se il path finding funziona.

Ora è anche possibile scegliere il tipo di funzione euristica per la previsione del costo da affrontare fino al punto di arrivo, le opzioni sono:

  • manhattan h(x)=min(lc,dc)*(abs(x-xt)+abs(y-yt))
  • diagonale h(x)=dc*max(abs(x-xt),abs(y-yt))
  • euclidea h(x)=dc*sqrt(sqr(x-xt)+sqr(y-yt))
  • euclidea al quadrato h(x)=dc*(sqr(x-xt)+sqr(y-yt))

Potete variare i pesi dei movimenti, lineare e diagonale, e vedere come cambiano tempi e risultati della ricerca.

Come ultima feature ho aggiunto la funzione per salvare l’immagine ottenuta, aprendola in una nuova pagina del browser, e di sfruttare il moderno local storage dei browser per salvare e ricaricare una griglia di dati. C’+ già anche una versione animata che sfrutta i web workers, in sviluppo, ma non ancora completata.

Direi che per qualche ora di lavoro non è niente male.

La zona blu è quella visitata, la scia bianca è il best path
La zona blu è quella visitata, la scia bianca è il best path
Print Friendly

Vuoi rispondere?