diff --git a/route-planning.md b/route-planning.md index 1e63bfd..7abfb02 100644 --- a/route-planning.md +++ b/route-planning.md @@ -21,19 +21,13 @@ Drugim zadaniem dotyczącym projektu jest zastosowanie strategii przeszukiwania ``` def hscore(self, s, f): - if f > s: - a_h = (f - s) // 5 - else: - a_h = (s - f) // 5 - if f % 5 >= s % 5: - b_h = f % 5 - s % 5 - else: - b_h = s % 5 - f % 5 + 1 - return 2 * m.sqrt(a_h * 2 + b_h * 2) + a_h = m.fabs(s - f) // 5 + b_h = m.fabs(f % 5 - s % 5) + return 2 * m.sqrt(a_h ** 2 + b_h ** 2) ``` -Wpierw obliczamy wysokość trójkąta, jaki tworzą obecne i końcowe pole, w celu wyznaczenia przeciwprostokątnej — odległość między s i f. +Wpierw obliczamy przyprostokątne trójkąta, jaki tworzą obecne i końcowe pole, w celu wyznaczenia przeciwprostokątnej — odległość między s i f. ## Funkcja następnika @@ -89,7 +83,7 @@ Jeżeli to pole odpowiada temu, do którego chcemy dojść — wywołujemy funkc ``` -Usuwamy x z open_set i wrzucamy do closed_set, aby upewnić się, że nie będziemy go ponownie sprawdzać. +Usuwamy x z open_set i wrzucamy do closed_set ``` @@ -106,16 +100,7 @@ Następnie sprawdzamy sąsiadów: ``` -To tutaj chcieliśmy mieć pewność, że nie trafimy ponownie na x. - - -``` - if y in closed_set: - continue -``` - - -Chcemy również sprawdzić, czy jeżeli y jest już w open_set, to nie istnieje krótsze przejście z pola startowego przez inne pole na y, niż bezpośrednio na pole y. +Chcemy również sprawdzić, czy jeżeli y jest już w open_set, to czy przejście z poprzednika przez x do y nie okaże się krótszym przejściem niż z poprzednika do y. ``` @@ -128,7 +113,7 @@ Chcemy również sprawdzić, czy jeżeli y jest już w open_set, to nie istnieje ``` -Wyliczamy g i f — przewidywany dystans od startu do celu, dla y. +Obliczamy g — koszt przejścia od pola początkowego do pola końcowego, zgodnie ze ścieżką wygenerowaną, aby się tam dostać, oraz f — sumę g i h. ``` @@ -140,6 +125,8 @@ Wyliczamy g i f — przewidywany dystans od startu do celu, dla y. ## Tworzenie ścieżki + + Przechodzimy po tablicy poprzedników, aż dojdziemy do początku — pola, które nie ma poprzednika.