5th semester web development
Pathifinding visualizer jest aplikacją dostępną na przeglądarkę. Na ekranie wyświetlane jest menu z wyborem algorytmu oraz siatka interaktywna. Program wyznacza najkrótszą drogę (za pomocą wybranego algorytmu), z punktu startowego (zielony kwadrat) do końcowego (czerwony kwadrat). Użytkownik może tworzyć lub usuwać ściany, które utrudnią wybranemu algorytmowi wyznaczenie drogi. Aby stworzyć mur należy kliknąć lewym przyciskiem myszy na puste pole. Kliknięcie w wypełnione czarnym kolorem pole spowoduje zniszczenie muru. Można budować szybciej przytrzymując przycisk myszy. Punkt startowy i docelowy może być przesuwany przez użytkownika poprzez kliknięcie myszą i przeniesienie w wybrane miejsce. Analogicznie użytkownik korzystający z urządzenia mobilnego może tworzyć ściany lub przesuwać skrajne punkty dotykając ekranu.
- index.html (70 liń)
- node.js (21 liń)
- PriorityQueue.js (53 liń)
- script.js (513 liń)
- style_mobile.css (136 liń)
- styles.css (139 liń)
Atrybuty:
- x
- y
- type = “empty_cell”
- gCost = 0
- hCost = 0
- parent = null
- priority = Infinity
Metody:
- fCost()
- Equals()
- constructor()
- enqueue(element)
- dequeue()
- front()
- rear()
- isEmpty()
- deleteRear()
- refresh()
- init()
- CreateGrid()
- BuildWall()
- SetStartTarget()
- IdToNode()
- NodeToId()
- Distance()
- Neighbours(n)
- LowestFCost(nodes)
- AStar()
- Clear()
- DrawPath()
- ColorNode(node, type)
- Visualize()
- Dijkstra()
- resetNodes()
- CreateGridForPhones()
- dragStart()
- dragEnd()
- drag()
- Sleep(ms)
- asyncForEach(array, callback)
Do znalezienia najkrótszej ścieżki wykorzystaliśmy następujące algorytmy:
- A* opisany przez Petera Harta, Nilsa Nilssona oraz Bertrama Raphaela.
- Dijsktra opracowany przez holenderskiego informatyka Edsgera Dijkstrę