From 0d8d9309aee89a01f3ced38e34144212491fe965 Mon Sep 17 00:00:00 2001 From: Mateusz Date: Mon, 27 Apr 2020 12:05:24 +0200 Subject: [PATCH] Raport route-planning.md main loop describe --- route-planning.md | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/route-planning.md b/route-planning.md index 66be2cd..b390228 100644 --- a/route-planning.md +++ b/route-planning.md @@ -1,9 +1,16 @@ #Planowanie ruchu -Całą implementacje automatycznego poruszania się można znaleźć w plikach -[AStarNode.py](https://git.wmi.amu.edu.pl/s444409/DSZI_Survival/src/development/src/Al/AStarNode.py) -oraz [AutomaticMovement.py](https://git.wmi.amu.edu.pl/s444409/DSZI_Survival/src/development/src/Al/AutomaticMovement.py) +**Całą implementacje automatycznego poruszania się można znaleźć +w plikach [AStarNode.py](https://git.wmi.amu.edu.pl/s444409/DSZI_Survival/src/development/src/Al/AStarNode.py) oraz + [AutomaticMovement.py](https://git.wmi.amu.edu.pl/s444409/DSZI_Survival/src/development/src/Al/AutomaticMovement.py).** ##Pętla główna strategii przeszukiwania - +* 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 +* 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, +to usuwamy z kolejki *node* i dodajemy *newNode* ##Funkcja następnika ##Heurystyka \ No newline at end of file