route-planning.md - successor function content

This commit is contained in:
Mateusz 2020-04-27 12:47:59 +02:00
parent a6a8812ace
commit b23865b090

View File

@ -8,8 +8,8 @@ w plikach [AStarNode.py](https://git.wmi.amu.edu.pl/s444409/DSZI_Survival/src/ma
* Na początku sprawdza czy kolejka jest pusta, jeśli tak zwraca *None*
* Jeśli test spełnienia celu się powiedzie, sprawdzamy dodatkowo czy nasz punkt docelowy nie jest elementem kolizyjnym, jeśli jest, to *cel = cel.parent* i zwracamy ciąg akcji
* Umieszczamy cel docelowy w tej iteracji w liście odwiedzonych pól
* Następnie w pętli *for* deklarujemy nowy stan i priorytet zgodnie z funkcją następnika
* Dodajemy dane miejsce do listy *explored*
* Następnie w pętli *for* deklarujemy nowy stan i priorytet zgodnie z funkcją następnika, jego priorytet określamy za pomocą funkcji priorytetu *self.priority*
* Jeśli stan nie jest w kolejce i nie ma go w odwiedzonych polach, umieszczamy go w kolejce
zgodnie z priorytetem, zapobiegamy też wystąpienia dwóch takich samych priorytetów poprzes *self.testCount += 1*
* A jeśli stan *newNode* należy do kolejki i jakiś inny stan *node* z kolejki posiada od niego większy priorytet,
@ -17,4 +17,13 @@ to usuwamy z kolejki *node* i dodajemy *newNode*
## Funkcja następnika
## Heurystyka
* Do wynik inicjujemy obrót w lewo i prawo, gdyż to zawsze nasz agent może wykonać
* Sprawdzamy czy jest możliwość ruchu do przodu:
* Sprawdzamy czy przed nami jest jakaś kolizja jeśli jest to weryfikujemy
czy to nie jest nasz cel, jeśli jest to dodajemy ruch do przodu do wyniku funkcji następnika, jeśli nie to zwracamy jedynie listę z obrotami
## Heurystyka
* Oszacowuje koszt dotarcia do celu końcowego z aktualnej pozycji gracza.
* Opisana metodą approximateDistanceFromTarget(self, tileX, tileY) w pliku AutomaticMovement.py
* Od tileX i tileY (aktualna pozycja gracza) odejmowana jest pozycja docelowa, zwracana jest wartość zaniżonego kosztu osiągnięcia celu.