Ha csak egy rács képpont - egy „nagy mező”, amelyre pacman és szellem is szabadon mozoghatnak -, akkor a legrövidebb út egyszerű - egy egyenes vonal a szellem és a pacman.
De a „legrövidebb út” mindig azt próbáljuk megoldani egy gráf-elmélet probléma. (Feltételezzük, hogy a tudás a grafikonok, néhány gráfelmélet, mn. Mátrixok, stb!)
A fenti esetben, úgy minden pixel, hogy egy csomópont egy grafikon. Minden egyes csomópont csatlakozik a szomszédai egy él, és mindegyik széle egyenlő „súlya” (mozog a csomópontot a „fent” nem lassabb, mint mozog a csomóponthoz „lent”).
Így van ez: ( "*" = node "-, /, \, |" = él)
*-*-*
|\|/|
*-*-* ... (etc)
|/|\|
*-*-*
Ha Pacman központjában, mozoghat bármely más csomóponttal nagyon könnyen.
Valami több, a valósághoz közelebb lehet a következő:
*-*-*
| | |
*-*-* ... (etc)
| | |
*-*-*
Most pacman nem tud mozogni átlósan. Ahhoz, hogy menjen a központtól a jobb alsó igényel 2 „komló” helyett egy.
Ahhoz, hogy folytassa a progresszió:
*-*-*-*
| | | |
| | | |
| | | |
*-*-*-*
| | | |
*-*-*-*
Most, hogy megy egy csomópontot a közepén, hogy egy csomópont a tetején, meg kell 3 komló. Ahhoz azonban, hogy mozog a fenék felé csak 1 hop.
Nem lenne könnyű lefordítani minden játék-board a telepítést egy grafikonon. Minden „kereszteződés” egy csomópontot. A út két metszéspont egy él, és a hossza, hogy útvonal a súlyát, hogy a szélén.
Írj be egy*. Alapján szerkesztett diagram (használjon adjency mátrix vagy lista csomópontok), akkor az A * algoritmus, hogy megtalálják a legrövidebb utat. Más algoritmusok Dijkstra. És sokan mások! De először meg kell keret a probléma szempontjából grafikon, majd Játék hogyan kívánja megy csomópont (pacman) a B csomópont (szellem).
Remélem segít!