Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- (* ::Package:: *)
- (* ::Title:: *)
- (*Mazes*)
- (* Mazes in Mathematica: http://bit.ly/2tBFMnT *)
- (* Clear variables. *)
- ClearAll["Global`*"]
- (* Limit variable scope to just this document. *)
- SetOptions[EvaluationNotebook[], CellContext -> Notebook]
- (* Set the current directory as the working directory. *)
- SetDirectory[NotebookDirectory[]]
- (* custom styling *)
- style = {Background -> GrayLevel[0],
- BaseStyle -> {Directive[White, EdgeForm[], Opacity[1]]},
- VertexShapeFunction -> (Rectangle[#1 + .16, #1 - .16] &),
- EdgeShapeFunction -> (Rectangle[#1[[1]] + .16, #1[[2]] - .16] &)};
- embedding = GraphEmbedding[GridGraph[{20, 30}]];
- (* Create a graph with random edge weights. *)
- g = GridGraph[{20, 30}, EdgeWeight -> RandomReal[10, 1150]];
- (* Find the spanning tree of the graph containing the vertex 1. *)
- tree = FindSpanningTree[{g, 1}];
- (* Create the maze using the tree. *)
- maze = Graph[tree, VertexCoordinates -> embedding, style]
- Export["maze.png",maze]
- (* Highlight the shortest path from 1 to 20*30=600. *)
- HighlightGraph[maze, PathGraph[FindShortestPath[maze, 1, 600]]]
- Export["maze-solution.png",%]
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement