How zrhnd/simulator-micromouse works
This repository combines a micromouse simulator with algorithms that run against it. The main workflow is to select a maze, launch an algorithm through mms, exchange sensor and movement commands, and visualize the resulting run. The documented flood-fill solver senses walls, updates its map, computes distances from the goal, and chooses moves; the tree also includes a Q-learning agent and a reference C++ template. Simulator internals and some integrations are represented at the directory level where source excerpts were unavailable.
Main entry points: mms-app mms simulator · Maze.cpp Maze model · main.c Flood-fill entry · solver.c Flood-fill solver
Components 17
Simulator
- mms simulator
sim/mms-app - Simulator entry
sim/mms-src/src/Main.cpp - Simulator driver
sim/mms-src/src/Driver.cpp
Maze and display
- Competition mazes
sim/mazes/mazefiles - Maze model
sim/mms-src/src/Maze.cpp - Grid map
sim/mms-src/src/Map.cpp - Maze view
sim/mms-src/src/MazeView.cpp - Mouse state
sim/mms-src/src/Mouse.cpp
Solvers
- Flood-fill entry
sim/algorithms/flood-fill-c/main.c - Flood-fill solver
sim/algorithms/flood-fill-c/solver.c - BFS queue
sim/algorithms/flood-fill-c/queue.c - Q-learning agent
sim/algorithms/q-learning/main.py - C++ reference
sim/algorithms/mms-cpp/Main.cpp
Algorithm interface
- C simulator API
sim/algorithms/flood-fill-c/API.c - C++ simulator API
sim/algorithms/mms-cpp/API.cpp
Agent state
- Learned state
sim/algorithms/q-learning/main.py
Other components
- Operator
Connections 20
- Operator → mms simulator: selects maze and runs
- Competition mazes → mms simulator: provides maze files
- mms simulator → Simulator entry: runs simulator
- Simulator entry → Simulator driver: calls drive
- Simulator driver → Maze model: coordinates simulation
- Maze model → Grid map: uses grid map
- Maze model → Mouse state: tracks mouse
- Maze view → mms simulator: renders simulation
- mms simulator → Flood-fill entry: launches algorithm
- Flood-fill entry → C simulator API: initializes and commands
- Flood-fill entry → Flood-fill solver: requests next move
- Flood-fill solver → C simulator API: reads sensors and displays
- Flood-fill solver → BFS queue: runs BFS
- C simulator API → mms simulator: exchanges simulator commands
- mms simulator → Q-learning agent: can launch algorithm
- Q-learning agent → Learned state: loads and saves
- Q-learning agent → mms simulator: senses and moves
- mms simulator → C++ reference: can launch template
- C++ reference → C++ simulator API: calls simulator API
- C++ simulator API → mms simulator: exchanges simulator commands