Mazes for programmers: code your own twisty little passages

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 -- F...

Ausführliche Beschreibung

Gespeichert in:
Bibliographische Detailangaben
1. Verfasser: Buck, Jamis (VerfasserIn)
Format: Buch
Sprache:English
Veröffentlicht: Dallas, Texas ; Raleigh, North Carolina <<The>> Pragmatic Bookshelf [2015]
Schriftenreihe:The pragmatic programmers
Schlagworte:
Online-Zugang:Inhaltsverzeichnis
Zusammenfassung: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
Beschreibung:Beispielcode unter https://pragprog.com/book/jbmaze/mazes-for-programmers#links
Beschreibung:XIV, 266 Seiten Illustrationen, Diagramme
ISBN:9781680500554