How wookjong/pbl1 works
This is a browser-based Dijkstra/A* teaching visualizer. Users choose a graph or editable grid, select an algorithm and queue options, then step through operations or compare runs; the app renders paths, queue activity, source lines, and performance measurements. The map preserves the documented comparison, grid, and analysis branches. Some demo internals were not sampled, so their links to algorithms and views are omitted unless documented; the graph focuses on evidenced orchestration and data flow.
Main entry points: main.ts App Shell · search.ts Best-first Search · run.ts Search Run State · graph.ts Graph and Events
Components 19
Application
- App Shell
src/main.ts - Localization
src/i18n.ts - Step-through Demo
src/demos/insideDemo.ts - Graph Comparison
src/demos/graphDemo.ts - Interactive Grid
src/demos/gridDemo.ts - Performance Analysis
src/demos/analysisDemo.ts
Graph Inputs
- Graph Generator
src/graphs/generate.ts - Grid Utilities
src/graphs/grids.ts
Search Engine
- Graph and Events
src/algo/graph.ts - Best-first Search
src/algo/search.ts - Dijkstra Adapter
src/algo/dijkstra.ts - A* Adapter
src/algo/astar.ts - Priority Queues
src/algo/heap.ts - Search Run State
src/algo/run.ts
Visualization
- Playback Controls
src/ui/player.ts - Graph Renderer
src/ui/graphView.ts - Heap Renderer
src/ui/heapView.ts - Source Highlighting
src/ui/codeView.ts
Other components
- Learner
Connections 24
- Learner → App Shell: selects views
README.md - App Shell → Step-through Demo: mounts
src/main.ts - App Shell → Graph Comparison: mounts
src/main.ts - App Shell → Interactive Grid: mounts
src/main.ts - App Shell → Performance Analysis: mounts
src/main.ts - App Shell → Graph Generator: generates graphs
src/main.ts - App Shell → Localization: reads labels
src/main.ts - App Shell → Interactive Grid: opens analysis cases
src/main.ts - Graph Generator → Graph and Events: builds graph data
src/graphs/generate.ts - Grid Utilities → Graph Generator: uses seeded random
src/graphs/grids.ts - Grid Utilities → Graph and Events: converts grid
src/graphs/grids.ts - Dijkstra Adapter → Best-first Search: configures h zero
src/algo/dijkstra.ts - A* Adapter → Best-first Search: supplies heuristic
src/algo/astar.ts - Best-first Search → Priority Queues: operates queue
src/algo/search.ts - Best-first Search → Graph and Events: reads graph; emits events
src/algo/search.ts - Search Run State → Priority Queues: accumulates queue stats
src/algo/run.ts - Search Run State → Graph and Events: consumes search events
src/algo/run.ts - Graph Renderer → Search Run State: renders run state
src/ui/graphView.ts - Heap Renderer → Priority Queues: renders queue entries
src/ui/heapView.ts - Heap Renderer → Graph Renderer: uses number formatter
src/ui/heapView.ts - Step-through Demo → Source Highlighting: shows source lines
README.md - Step-through Demo → Playback Controls: offers playback controls
- Graph Comparison → Search Run State: compares settled steps
- Performance Analysis → Interactive Grid: opens scenarios in
src/main.ts