Zaktualizuj 'route-planning.md'
This commit is contained in:
parent
099d5fa78f
commit
7a6c3981b8
@ -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
|
`path` - lista zawierająca pola tworzące ścieszkę do wybranego celu
|
||||||
|
|
||||||
Dodajemy pierwszy element który będziemy sprawdzać do listy openSet:
|
Dodajemy pierwszy element który będziemy sprawdzać do listy openSet: `addToOpenSet(openSet, startField)`
|
||||||
`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.
|
Jeśli pole `current` okaże się naszym celem tworzymy ścieszkę z punktu startowego do naszego celu.
|
||||||
|
|
||||||
```javascript
|
```javascript
|
||||||
if(current === goalField){
|
if(current === goalField){
|
||||||
path = []
|
path = []
|
||||||
@ -29,19 +29,27 @@ if(current === goalField){
|
|||||||
temp = temp.previous
|
temp = temp.previous
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
Następnie kolorujemy tą ścieszkę i kończymy funkcję zwracając ścieszkę `path`
|
Następnie kolorujemy tą ścieszkę i kończymy funkcję zwracając ścieszkę `path`
|
||||||
|
|
||||||
```javascript
|
```javascript
|
||||||
for(var i = 0; i < path.length; i++){
|
for(var i = 0; i < path.length; i++){
|
||||||
colorYellow(path[i]);
|
colorYellow(path[i]);
|
||||||
}
|
}
|
||||||
return path
|
return path
|
||||||
```
|
```
|
||||||
|
|
||||||
Jeśli pole `current` nie jest naszym celem, to usuwamy je z listy `openSet` i dodajemy do listy `closedSet`
|
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);`
|
```javascript
|
||||||
Pobieramy sąsiadów pola `current`
|
removeFromSet(openSet, current);
|
||||||
`var neighbors = current.neighbors;`
|
addToClosedSet(closedSet, current);
|
||||||
Dla każdego sąsiada obliczamy koszt dotarcia do niego z punktu początkowego najlepszą ścieszką
|
```
|
||||||
|
|
||||||
|
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
|
```javascript
|
||||||
for(var i = 0; i < neighbors.length; i++){
|
for(var i = 0; i < neighbors.length; i++){
|
||||||
var neighbor = neighbors[i];
|
var neighbor = neighbors[i];
|
||||||
@ -56,12 +64,12 @@ for(var i = 0; i < neighbors.length; i++){
|
|||||||
addToOpenSet(openSet, neighbor);
|
addToOpenSet(openSet, neighbor);
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
Po przypisaniu kosztu do sąsiada dodajemy jego odległość do celu
|
|
||||||
`neighbor.heuristic = getDistance(neighbor, goalField);`,
|
Po przypisaniu kosztu do sąsiada dodajemy jego odległość do celu: `neighbor.heuristic = getDistance(neighbor, goalField);`,
|
||||||
??????????
|
|
||||||
`neighbor.f = neighbor.gScore + neighbor.heuristic;`
|
??????????: `neighbor.f = neighbor.gScore + neighbor.heuristic;`
|
||||||
oraz jego poprzednika
|
|
||||||
`neighbor.previous = current;`
|
oraz jego poprzednika: `neighbor.previous = current;`
|
||||||
### Definicja funkcji następnika
|
### Definicja funkcji następnika
|
||||||
|
|
||||||
### Definicja przyjętej heurystyki
|
### Definicja przyjętej heurystyki
|
||||||
|
Loading…
Reference in New Issue
Block a user