Gain insights into maze generation, applying software engineering to create diverse mazes in various shapes and dimensions. Discover inspiration to overcome programmer’s block and burnout.
120 Lessons
35h
Updated 3 months ago
Join 2.9 million developers at
Join 2.9 million developers at
LEARNING OBJECTIVES
- An understanding of the usefulness of mazes to generate interesting puzzles
- Hands-on experience designing algorithms and programs to solve different puzzles
- Familiarity with different types of mazes including grids and circular, weaving, and folding mazes
- Hands-on experience creating different mazes and solving them using a variety of algorithms
- Ability to traverse mazes, render mazes, and exploit well-known graph theoretic algorithms to solve underlying problems in mazes
Learning Roadmap
1.
Our First Random Mazes
Our First Random Mazes
Learn how to use algorithms for creating diverse mazes, emphasizing practical coding in Ruby.
2.
Automating and Displaying our Mazes
Automating and Displaying our Mazes
Walk through automating maze grids, generating with algorithms, and rendering for visual representation.
Introducing Our Basic GridImplementing the Grid ClassImplementing the Binary Tree AlgorithmDisplaying a Maze on the ConsoleImplementing the Sidewinder AlgorithmRendering a Maze as an ImageQuiz Yourself on Automating and Displaying MazesExercise: Interactive Fiction DisplaySolution: Interactive Fiction Display
3.
Solving Mazes
Solving Mazes
10 Lessons
10 Lessons
Work your way through solving and visualizing mazes using Dijkstra's algorithm and enhanced coloring techniques.
4.
Avoiding Bias with Random Walks
Avoiding Bias with Random Walks
8 Lessons
8 Lessons
Grasp the fundamentals of unbiased maze generation using random walk algorithms and optimization techniques.
5.
Adding Constraints to Random Walks
Adding Constraints to Random Walks
8 Lessons
8 Lessons
Map out maze generation via two algorithms, Hunt-and-Kill and Recursive Backtracker, balancing dead ends and paths.
6.
Fitting Mazes to Shapes
Fitting Mazes to Shapes
7 Lessons
7 Lessons
Tackle maze masking techniques including class implementations, ASCII and image masks, and geometric mask exercises.
7.
Going in Circles
Going in Circles
8 Lessons
8 Lessons
Build on polar grids to craft visually appealing, adaptive, and structured circular mazes.
8.
Exploring Other Grids
Exploring Other Grids
9 Lessons
9 Lessons
Get familiar with alternative grid types by implementing and displaying hex, triangle, and zeta mazes.
9.
Braiding and Weaving Our Mazes
Braiding and Weaving Our Mazes
11 Lessons
11 Lessons
Get started with designing versatile mazes using braiding, weaving techniques, and cost-aware pathfinding.
10.
Improving Our Weaving
Improving Our Weaving
7 Lessons
7 Lessons
Master the steps to generate well-structured, predictable weave mazes using Kruskal's algorithm.
11.
Growing With Prim's
Growing With Prim's
7 Lessons
7 Lessons
Grasp the fundamentals of Prim's algorithm and its maze generation applications.
12.
Combining, Dividing
Combining, Dividing
8 Lessons
8 Lessons
Dig deeper into advanced maze algorithms, including Eller's, Recursive Division, and a unique Aldous-Broder application.
13.
Extending Mazes into Higher Dimensions
Extending Mazes into Higher Dimensions
8 Lessons
8 Lessons
Tackle higher-dimensional maze creation, from transitioning 2D to 3D, visualizing, and implementing complex grid structures.
14.
Bending and Folding Our Mazes
Bending and Folding Our Mazes
10 Lessons
10 Lessons
Build on various 3D maze structures like cylinders, Möbius strips, cubes, and spheres.
15.
Conclusion
Conclusion
2 Lessons
2 Lessons
Learn how to use maze algorithms and advanced maze generation techniques in Ruby.
Certificate of Completion
Showcase your accomplishment by sharing your certificate of completion.
Complete more lessons to unlock your certificate
Developed by MAANG Engineers
ABOUT THIS COURSE
Mazes are everywhere. From psychology experiments involving mice to robotics demonstrations to movies, video games, books, and puzzles, we all encounter mazes at some point or other in our lives. Working with mazes is like going on a voyage of discovery where you never know quite what you’ll find when you crest the next hill.
In this course, you’re going to look at ideas to inspire you and learn to generate your own mazes. After taking this course, you’ll have taken your existing knowledge of software engineering and applied it to generating puzzles in a variety of shapes and sizes. You’ll make mazes out of squares, circles, triangles, hexagons, cylinders and cubes, spheres, and even Möbius strips. You’ll stretch them into other dimensions, squeeze them into arbitrary outlines, weave them, braid them, print them, and fold them. You will discover yourself brimming with ideas and hopefully find inspiration to tackle the programmer’s block, burnout, and gray days.
ABOUT THE AUTHOR
The Pragmatic Programmers
We create timely, practical books and learning resources on classic and cutting-edge topics to help you practice your craft and accelerate your career.
Trusted by 2.9 million developers working at companies
A
Anthony Walker
@_webarchitect_
E
Evan Dunbar
ML Engineer
S
Software Developer
Carlos Matias La Borde
S
Souvik Kundu
Front-end Developer
V
Vinay Krishnaiah
Software Developer
Built for 10x Developers
No Passive Learning
Learn by building with project-based lessons and in-browser code editor


Personalized Roadmaps
The platform adapts to your strengths & skills gaps as you go


Future-proof Your Career
Get hands-on with in-demand skills


AI Code Mentor
Write better code with AI feedback, smart debugging, and "Ask AI"




MAANG+ Interview Prep
AI Mock Interviews simulate every technical loop at top companies

