From b23865b0905e76f49d9febdde87249572d94098b Mon Sep 17 00:00:00 2001 From: Mateusz Date: Mon, 27 Apr 2020 12:47:59 +0200 Subject: [PATCH] route-planning.md - successor function content --- route-planning.md | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/route-planning.md b/route-planning.md index eacbc1b..19c89fb 100644 --- a/route-planning.md +++ b/route-planning.md @@ -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 \ No newline at end of file +* 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. \ No newline at end of file