From 7a6c3981b8ab2466f378e440f567890541a92c64 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tomasz=20Kuczy=C5=84ski?= Date: Tue, 28 Apr 2020 21:41:00 +0000 Subject: [PATCH] Zaktualizuj 'route-planning.md' --- route-planning.md | 42 +++++++++++++++++++++++++----------------- 1 file changed, 25 insertions(+), 17 deletions(-) diff --git a/route-planning.md b/route-planning.md index 49aeec0..87b3695 100644 --- a/route-planning.md +++ b/route-planning.md @@ -11,14 +11,14 @@ Naszą główną funkcją jest funkcja `aStar(startField, goalField)`, przyjmuje `path` - lista zawierająca pola tworzące ścieszkę do wybranego celu -Dodajemy pierwszy element który będziemy sprawdzać do listy openSet: -`addToOpenSet(openSet, startField)` +Dodajemy pierwszy element który będziemy sprawdzać do listy openSet: `addToOpenSet(openSet, startField)` + +Dopuki lista `openSet` nie bedzie pusta sprawdzamy jej elementy: `while(openSet.length > 0)` + +Wybieramy najbardziej obiecujący element z zbioru `openSet`: `let current = findLowestFScore(openSet, goalField)` -Dopuki lista `openSet` nie bedzie pusta sprawdzamy jej elementy -`while(openSet.length > 0)` -Wybieramy najbardziej obiecujący element z zbioru `openSet` -`let current = findLowestFScore(openSet, goalField)` Jeśli pole `current` okaże się naszym celem tworzymy ścieszkę z punktu startowego do naszego celu. + ```javascript if(current === goalField){ path = [] @@ -29,19 +29,27 @@ if(current === goalField){ temp = temp.previous } ``` + Następnie kolorujemy tą ścieszkę i kończymy funkcję zwracając ścieszkę `path` + ```javascript for(var i = 0; i < path.length; i++){ colorYellow(path[i]); } return path ``` + Jeśli pole `current` nie jest naszym celem, to usuwamy je z listy `openSet` i dodajemy do listy `closedSet` -`removeFromSet(openSet, current);` -`addToClosedSet(closedSet, current);` -Pobieramy sąsiadów pola `current` -`var neighbors = current.neighbors;` -Dla każdego sąsiada obliczamy koszt dotarcia do niego z punktu początkowego najlepszą ścieszką + +```javascript +removeFromSet(openSet, current); +addToClosedSet(closedSet, current); +``` + +Pobieramy sąsiadów pola `current`: `var neighbors = current.neighbors;` + +Dla każdego sąsiada obliczamy koszt dotarcia do niego z punktu początkowego najlepszą ścieszką. + ```javascript for(var i = 0; i < neighbors.length; i++){ var neighbor = neighbors[i]; @@ -56,12 +64,12 @@ for(var i = 0; i < neighbors.length; i++){ addToOpenSet(openSet, neighbor); } ``` -Po przypisaniu kosztu do sąsiada dodajemy jego odległość do celu -`neighbor.heuristic = getDistance(neighbor, goalField);`, -?????????? -`neighbor.f = neighbor.gScore + neighbor.heuristic;` -oraz jego poprzednika -`neighbor.previous = current;` + +Po przypisaniu kosztu do sąsiada dodajemy jego odległość do celu: `neighbor.heuristic = getDistance(neighbor, goalField);`, + +??????????: `neighbor.f = neighbor.gScore + neighbor.heuristic;` + +oraz jego poprzednika: `neighbor.previous = current;` ### Definicja funkcji następnika ### Definicja przyjętej heurystyki