Skip to content

Run, test and compare all algorithms and heuristic functions

License

Notifications You must be signed in to change notification settings

rvhuang/pathfinding-lab

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

79 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Pathfinding Laboratory

Docker Image Size Docker Image Version

A playground where you can run, test and compare pathfinding algorithms and heuristic functions.

Visit the website running on DigitalOcean and try it out.

The project is written in ASP.NET Core MVC/Web API and TypeScript. The algorithm part of the project is based on LINQ to A*: a POC about pathfinding algorithms written in C# and used with LINQ expressions.

Features

  • An editable, retro RPG-style map where you can place various obstacles, creating whatever maze you want.
  • Five algorithms and three heuristic functions available for playing with (more to be added).
  • Right-clicking on two positions to find a path (can be undone).
  • An overlay grid with animation to show expanded nodes and depths(levels).
  • A line chart that fully illustrates the evolution of Open List during the process.
  • A code snippet that demonstrates LINQ statement using LINQ to A*.

Build the project

cd src/Heuristic.PathfindingLab/Heuristic.PathfindingLab/
npm i -s d3
npm i -s @types/d3
tsc -p tsconfig.json
dotnet build Heuristic.PathfindingLab.csproj

Build Docker image

cd src/Heuristic.PathfindingLab/Heuristic.PathfindingLab/
docker build -t pathfinding-lab .

Run Dockerized instance

docker pull rvhuang/pathfinding-lab:latest
docker run -d -p 8080:80 pathfinding-lab:latest --name p-lab

License

Copyright © Robert Vandenberg Huang

The project is licensed under the MIT license. Feel free to copy, modify and use it in your computer science homework (grades not guaranteed).