Back to battles
mediumupcoming

Maze Generator

Generate and solve mazes with multiple algorithms and visualization.

30 min limit0 participants
javascriptcanvasalgorithms
PRD
# Maze Generator PRD

## Overview
Build a maze generation and solving tool with animated algorithm visualization, multiple generation algorithms, a playable mode, and configurable rendering options.

## Requirements
- Generate mazes using the recursive backtracking algorithm
- Configurable grid size from 10x10 to 50x50 cells
- Animate the generation process step-by-step showing walls being removed
- Solve the maze using BFS or DFS with animated path tracing
- Display the solution length as the number of steps from start to end
- User-playable mode where the player navigates with arrow keys
- Start position at the top-left corner and end position at the bottom-right corner
- Configurable wall thickness and cell size
- Multiple generation algorithms: recursive backtracking, Prim's algorithm, and Kruskal's algorithm
- Generation speed slider to control animation pace
- Regenerate button to create a new maze instantly
- Solution toggle to show or hide the solved path
- Timer for player mode tracking how long it takes to reach the exit
- Breadcrumb trail showing cells the player has visited
- Responsive canvas that scales to the viewport
- Export the completed maze as a PNG image

## Tech Stack
- HTML, Canvas, JavaScript (vanilla or any framework)
- No maze or graph algorithm libraries — implement all algorithms yourself

## Scoring Criteria
- **Functional (40%)**: Maze generation produces valid solvable mazes, solving finds the correct path, player navigation works
- **Quality (20%)**: Clean code, smooth animations, handles edge cases (tiny and large grids), correct algorithm implementations
- **Fidelity (25%)**: All features implemented including multiple algorithms, speed control, player mode, export, breadcrumbs
- **Speed (15%)**: Time bonus

Battle Stats

Time Limit30 min
Participants0
Statusupcoming

Rules

  • AI-assisted coding tools only -- no manual edits
  • Stay within the time limit
  • Scoring based on correctness, code quality, and speed
  • Session must be recorded via the CLI