Git Product home page Git Product logo

pathfinding's Introduction

PathFinding

C# Windows Forms application demonstrating several common path finding algorithms traversing a 2D maze.

Do what you like with the code, it's not like I invented these algorithms.

Uses Dijkstra, A*, Breadth First search, and Depth First search to find a path from A to B. The cells of the maze are randomly weighted so that the direct path is not always the cheapest.

DIJKSTRA

Traverses the maze investigating the least costly so far path until it reaches its destination. This is a generic algorithm that does not use a heuristic.

A*

A special implementation of DIJKSTRA that also applies a heuristic to guess which node are the most promising. The 'Manhattan distance' is used in this case, but other heuristics are possible.

BREADTH-FIRST

An algorithm that searches all the child nodes of a particualar starting point before then search their children.

DEPTH-FIRST

Searches all the child nodes a starting point, examining each branch as far as it will go either to the destination or a dead end. If a dead end is reaches, the branch is traced back to the nearest node with unexplored children and continues.

pathfinding's People

Contributors

andybobbean avatar goldsail avatar igoraresti avatar

Stargazers

 avatar Andrew Mobus avatar  avatar  avatar  avatar Ten Years A Dream avatar  avatar dkjacmoc avatar Justin Garcia avatar cyc avatar  avatar 高振东 avatar João André Martins Dias e Silva avatar  avatar  avatar  avatar R3tuxn avatar  avatar James Santiago avatar Jin avatar Adam avatar Dan avatar MH.Movasaghi avatar Sebastian Rings avatar 洪照 avatar  avatar pedoc avatar Zhang YaNan avatar Marcelo Amancio de Lima Santos avatar Dr. Daniel C. Oderbolz avatar  avatar  avatar  avatar Luís Ferreira avatar  avatar Qiuyang Yin avatar Joshua Behrens avatar Andres avatar Xiaohan avatar Michael 'afrolion' Perrotte avatar Colin Haley avatar  avatar  avatar  avatar Michael avatar Chan Wai Hsuen avatar Matthew Kobilas avatar yhnu avatar Carlos Eduardo Parra avatar GAURAV avatar Ashkan Nourzadeh avatar  avatar moyuru avatar claudemit avatar Bivash Oli avatar Eric Tran avatar Michael Zhang avatar Pavol Decky avatar  avatar Alexander Johnston avatar Chris Parker avatar olcay seker avatar Giacomo Tüfekci avatar James Kominick avatar Juan C. Garcia M. avatar Vincent Tang avatar J. Smith avatar Piotr Furman avatar  avatar  avatar Denny Joy avatar Flávio Garcia avatar Paul avatar Asil YARDIMCI avatar Dipak Chauhan avatar Richard M-C avatar  avatar Robin Turner avatar Benjamin Dengler avatar Axel Jacobsen avatar Zhao Wei Liew avatar Orix Au Yeung avatar James Fry avatar Matthew Carney avatar  avatar Toomas Tahves avatar Spyros Vlachos avatar Pantuflo avatar mike avatar kishimi ibrahim avatar Keon Hee Park avatar Chris Faustin avatar A Kasetty avatar Justin Rumpf avatar Farbod Saff avatar  avatar Joseph Badlato avatar Mike Ray Arriaga avatar Chris Higgins avatar Mathew Mariani avatar

Watchers

 avatar Themiss_cai avatar  avatar  avatar  avatar  avatar Hallvard Stemshaug avatar Brian Cleland avatar Marko Plaznik avatar Orix Au Yeung avatar Denny Joy avatar Peng avatar  avatar  avatar  avatar

pathfinding's Issues

Potentially Redundant Variable

I believe the _destinationFound variable, used in BreadthFirst.cs can be removed without affecting the algorithm. Although I could be wrong.

Astar problem

I am using this code for a pathfinding game.
I think there is a problem with the astar algorithm. when there is a maze that has only one route, the algorithm doesn't find the solution. it add 2 neigbours and goes to one of them. then igonring the other neigbour and returning path not found.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.