2025-11-03 05:04:47 +01:00
2025-10-31 07:22:26 +01:00
2025-11-03 05:04:47 +01:00
2025-11-03 05:03:03 +01:00
2025-10-30 15:18:41 +01:00
2025-10-31 17:24:43 +01:00
2025-10-31 17:51:34 +01:00
2025-10-31 06:06:46 +01:00
2025-10-16 09:30:56 +02:00
2025-10-16 09:30:56 +02:00

Pathfinding demo

C++ pathfinding demo

This is a demo of pathfinding on a 2D grid. It consists of 2 main parts:

  • python notes and implementation
    • jupyter notebook file
    • standalone python script
  • C++ interactive demo

Python

Standalone script

Run python pathfinding_demo.py. Requires numpy and matplotlib to be installed.

Jupyter notebook

Contains the same demo as the standalone script and some notes. Since Github supports Jupyter Notebooks now, you can go directly to the file.

C++

Windows

Dependencies

  • vcpkg needs to be installed and VCPKG_ROOT set. See the installation instructions.
  • Visual Studio with Desktop development with C++ workload (or MSVC Build Tools)

Build - option 1: CLI

Run "Developer Command Prompt for VS 20xx":

cmake --preset=vcpkg
cmake --build build

Run the pathfinding.exe binary in the build folder.

Build - option 2: Visual Studio

TODO

Linux

Dependencies

  • SDL3
  • SDL3-image
  • GLEW
  • gtest

e.g. on Archlinux:

pacman -S glew sdl3 sdl3_image gtest

Optional dependencies for generating class and include diagrams:

clang-uml needs to be either installed from AUR or built manually

Build

cmake -B build
cmake --build build -j 16

Optionally you can also use options:

  • -DCMAKE_EXPORT_COMPILE_COMMANDS=ON to enable compile database export (needed for class diagram generation)
  • -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ to use clang
cmake -B build -DCMAKE_EXPORT_COMPILE_COMMANDS=O  -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++

Run the pathfinding binary in the build folder.

Generate architecture diagrams

Build with -DCMAKE_EXPORT_COMPILE_COMMANDS=ON. Then in the root folder run:

clang-uml
plantuml -tsvg docs/diagrams/*.puml

The resulting svg files are located in docs/diagrams/.

Description
Python and C++ implementation of selected pathfinding algorithms
Readme 1.1 MiB
Languages
C++ 58.4%
Jupyter Notebook 31.5%
Python 6.8%
CMake 3.2%
Shell 0.1%