Z pohledu lajka, ktery nevi o 'Dijkstrův algoritmus' vubec nic, resim nejkratsi cestu tak, ze si ...
- z herni plochy vygeneruji seznam policek a jejich sousedu, pole S. s[0] = [0, null, 1, 8, null] (na sachovnici nahore nic, vpravo pole 1, dole pole 8, vlavo nic - smery jsou podle hodinovych rucicek)
- pak zjistim existenci bodu A a B v poli (v php je to isset($s[$a])), aby mi tam treba nekdo nezadal neexist bod
-
x = []
x[] = [a, null] // pridam prvni,
y = 0 // pridam vsechny sousedy prvniho policka
x[] = [s[x[y]][0], y]
x[] = [s[x[y]][2], y] //sx0-1,3 neexistuje, ty nepridam
y++ // pridam sousedy sousedu
x[] = [s[x[y]][0], y] atd
atd, dokud nenarazim na bod B. Pak mam na vyber, kdy program ukoncim a zpetne vratim seznam policek. Nebo pokracuji jeste pro vsechny sousedy a pak nahodne vybiram trasu.
Nikdy jsem to neresil z tabulky vzdalenosti. Tam je to asi podobne. Jenom navic musis scitat vzdalenost a kdyz narazis na bod B najit ze vsech poslednich dat tu nejkratsi.