Zaktualizuj 'route-planning.md'
This commit is contained in:
parent
4a18cc04b9
commit
b98debe89c
@ -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.
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user