Menu

Pipmaze_maze_generator

Anonymous Christian Walther
Attachments

NOTE: Pipmaze is defunct. This page is here for archival purposes only.

Introduction

Pipmaze is a program for generating random, solvable mazes for use with (but not restricted to) Pipmak. It has a command-line interface, and is written in Ruby. It generates POV-Ray scenes with a macro that sets up four shots from each cell (front, back, left, right, top and for a panoramic cube), which it puts in a Pipmak project generates from the maze.

Features

  • Generates, and renders (through POV-Ray) a two-dimensional maze of any size.
  • Knock down, or put up walls manually.
  • Set start and exit nodes.
  • Print the maze as ASCII art.
  • Generate a working Pipmak project from maze and images (from POV-Ray).
  • Save the maze as YAML to load (into Pipmaze) later.
  • Save the maze as a POV-Ray scene.

Lacking

  • I'm not certain this will run on non-Unix systems.
  • Editing is a bit cumbersome.
  • End-user documentation.

Usage

Pipmaze has only a command-line interface.

The simplest way of using Pipmaze is to type

pipmaze.rb HEIGHT WIDTH

in your shell. This will...

  • generate a random maze with the specified dimensions,
  • save the maze as a YAML dump, and a POV-Ray scene
  • render the maze using POV-Ray,
  • and generate a Pipmak project that will include the images from POV-Ray.

It can also be run interactively, and this is very simple as well. Running it interactively is useful if you want to manually edit the maze or the POV-Ray scene, or if you want to preview the maze (which will only work for small mazes, unless you save it to a file, and then open it with a text editor). There is a useropts.inc file which can be edited to easily change some scene variables. There is also a similar file for the Pipmak project, but this is copied into the project directory.

$ ./pipmaze.rb
Maze> new 11 13
Maze> ascii
 _ _ _ _ _ _ _ _   _ _ _ _
| |   |  _  | |  _ _ _   _|
| | | | |  _|_  |   | |_  |
|  _|_ _|_ _  |_ _|_  | | |
| |  _|  _  |_  |  _ _ _| |
| | |  _ _| |_ _|_ _ _|  _|
| |_ _ _|   |_   _ _  |_  |
|_ _ _ _ _|_ _ _|   |_ _  |
|    _ _ _ _ _ _  |_ _ _| |
| |_ _  |_ _ _  | |  _  | |
| |  _ _|  _  |_ _| | | | |
|_|_ _ _ _ _|_ _ _ _ _|_  |
Maze> delwall 3 1 west
 _ _ _ _ _ _ _ _   _ _ _ _
| |   |  _  | |  _ _ _   _|
| | | | |  _|_  |   | |_  |
|  _|_ _|_ _  |_ _|_  | | |
|    _|  _  |_  |  _ _ _| |
| | |  _ _| |_ _|_ _ _|  _|
| |_ _ _|   |_   _ _  |_  |
|_ _ _ _ _|_ _ _|   |_ _  |
|    _ _ _ _ _ _  |_ _ _| |
| |_ _  |_ _ _  | |  _  | |
| |  _ _|  _  |_ _| | | | |
|_|_ _ _ _ _|_ _ _ _ _|_  |
Maze> Terminating
$

When rendered with POV-Ray, this maze will look like this from the top...

...or like this from inside the maze...

Obtaining Pipmaze

<strike> You can get Pipmaze from its SourceForge page, or from its Subversion repository.
SourceForge project page: http://sourceforge.net/projects/pipmaze/
Subversion Repository URL: https://pipmaze.svn.sourceforge.net/svnroot/pipmaze/trunk/pipmaze
</strike>

The Pipmaze project is now defunct, but you can get a snapshot of the last revision that was in the Subversion repository (r20) as an ACSII-armored (base64), lzma-compressed tar-archive from here --> [Pipmaze_snapshot_r20].

You will also need to install...


Related

Wiki: Main_Page
Wiki: Pipmaze_snapshot_r20