Mazes for programmers code your own twisty little passages

Unlock the secrets to creating random mazes! Whether you're a game developer, an algorithm connoisseur, or simply in search of a new puzzle, you're about to level up. Learn algorithms to randomly generate mazes in a variety of shapes, sizes, and dimensions. Bend them into Moebius strips, f...

Descripción completa

Detalles Bibliográficos
Otros Autores: Buck, Jamis, author (author), Carter, Jacquelyn, editor (editor)
Formato: Libro electrónico
Idioma:Inglés
Publicado: Dallas, Texas ; Raleigh, North Carolina : The Pragmatic Bookshelf 2015.
Edición:1st edition
Colección:Pragmatic programmers.
Materias:
Ver en Biblioteca Universitat Ramon Llull:https://discovery.url.edu/permalink/34CSUC_URL/1im36ta/alma991009629623606719
Tabla de Contenidos:
  • Part I. The basics : Your first random mazes : Preparing the grid ; The binary tree algorithm ; The sidewinder algorithm
  • Automating and displaying your mazes : Introducing our basic grid ; Displaying a maze on a terminal ; Implementing the binary tree algorithm ; Rendering a maze as an image
  • Finding solutions : Dijkstra's algorithm ; Implementing Dijkstra's ; Finding the shortest path ; Making challenging mazes ; Coloring your mazes
  • Avoiding bias with random walks : Understanding biases ; The Aldous-Broder algorithm ; Implementing Aldous-Broder ; Wilson's algorithm ; Implementing Wilson's algorithm
  • Adding constraints to random walks : The hunt-and-kill algorithm ; Implementing hunt-and-kill ; Counting dead ends ; The recursive backtracker algorithm ; Implementing the recursive backtracker
  • Part II. New steps : Fitting mazes to shapes : Introducing masking ; Implementing a mask ; ASCII masks ; Image masks
  • Going in circles : Understanding polar grids ; Drawing polar grids ; Adaptively subdividing the grid ; Implementing a polar grid
  • Exploring other grids : Implementing a hex grid ; Displaying a hex grid ; Making hexagon (sigma) mazes ; Implementing a triangle grid ; Displaying a triangle grid ; Making triangle (delta) mazes
  • Braiding and weaving your mazes : Braiding mazes ; Cost versus distance ; Implementing a cost-aware Dikstra's algorithm ; Introducing weaves and insets ; Generating weave mazes
  • Part III. More algorithms : Improving your weaving : Kruskal's algorithm ; Implementing randomized Kruskal's algorithm ; Better weaving with Kruskal ; Implementing better weaving
  • Growing with Prim's : Introducing Prim's algorithm ; Simplified Prim's algorithm ; True Prim's algorithm ; The growing tree algorithm
  • Combining, dividing : Eller's algorithm ; Implementing Eller's algorithm ; Recursive division ; Implementing recursive division
  • Part IV. Extending mazes into hight dimensions : Understanding dimensions ; Introducing 3D mazes ; Adding a third dimension ; Displaying a 3D maze ; Representing four dimensions
  • Bending and folding your mazes ; Cylinder mazes ; Möbius mazes ; Cube mazes ; Sphere mazes
  • Summary of maze algorithms : Aldous-Broder ; Binary tree ; Eller's ; Growing tree ; Hunt-and-kill ; Kruskal's (randomized) ; Prim's (simplified) ; Prim's (true) ; Recursive backtracker ; Recursive division ; Sidewinder ; Wilson's
  • Comparison of maze algorithms : Dead ends ; Longest path ; Twistiness ; Directness ; Intersections.