Quindi ho giocato molto pacman nella mia cella ultimamente e mi sto chiedendo come facciano i fantasmi a funzionare indipendentemente l'uno dall'altro. Stavo pensando a come sarebbe stato programmato.In Pacman i fantasmi scelgono i percorsi in modo indipendente per trovare pacman?
Un'opzione che ho pensato di essere thread. Tutti e 4 i fantasmi sono in esecuzione nei loro thread e in qualche modo trovano la posizione di Pacman. Ma sembra un po 'troppo avere quattro thread che funzionano e la sincronizzazione sarebbe difficile. Inoltre, Google ha scritto pacman in Javascript che non supporta i thread, quindi può essere fatto senza thread e ci deve essere un modo più semplice.
Il mio secondo pensiero erano i gestori di eventi. Trasmetto solo l'evento 'directionChanged' che pacman attiverà a 4 gestori di eventi, uno per ciascun fantasma. Ogni fantasma decide quale percorso prendere per arrivare a Pacman. Questo penso sia più probabile di ciò che sta accadendo. Ma può essere lento se i gestori di eventi vengono eseguiti in modo sincrono, poiché i percorsi dovranno essere calcolati in sequenza e il 4 ° fantasma impiegherà del tempo per cambiare direzione e questo potrebbe creare un lag visibile (probabilmente). Inoltre, i fantasmi sparerebbero un evento loro stessi quando colpiscono un muro e i loro gestori di eventi cambieranno la direzione dei fantasmi. Ma data la frequenza con cui pacman cambia direzione e i quattro fantasmi rispondono, anche i gestori di eventi sembrano un po 'troppo.
Sto dicendo che le idee di cui sopra sarebbero un po 'troppo perché ricordo che il gioco è stato scritto 30 anni fa, quando il tempo e la memoria della cpu erano scarsi, quindi penso che ci debba essere un modo molto più semplice.
Inoltre, sembra che i fantasmi stiano seguendo percorsi diversi anche quando pacman è ancora. Tutti i fantasmi utilizzano algoritmi di individuazione dei percorsi completamente diversi o ottimizzati in modo diverso?
Sono più interessato a scoprire come tutti i fantasmi sembrano funzionare autonomamente rispetto agli algoritmi di individuazione dei percorsi che utilizzano. Pensieri?
Anche se ci deve essere molta più logica internamente, penso che questa dovrebbe essere fondamentalmente l'idea che deve sono stati implementati Grazie. – desigeek
Tranne che nel caso in cui i fantasmi cercano/scappano da te, nel qual caso usano la tua posizione per determinare la scelta migliore (o scegliere casualmente una delle due). E per la cronaca hanno bisogno di un thread in modo che si muovano indipendentemente dagli eventi dell'utente (se non ti muovi ti prenderanno) – Rudu
Hai bisogno di un po 'di casualità nei movimenti del fantasma, altrimenti, prima o poi tutti i fantasmi si muoveranno insieme in una mole, che rende il gioco relativamente facile. E ovviamente un fantasma non deve colpire un muro per cambiare direzione, può farlo su qualsiasi incrocio. Nel gioco originale di Pacman, i Ghosts possono persino invertire senza preavviso. –