Submitted by , posted on 22 March 2005

Image Description, by

Following a post on the comp.lang.functional newsgroup asking for a 2D maze generator written in a functional style, I wrote this little 131-line OCaml program to generate and render simple 2D mazes using OpenGL and also export the result as PostScript.

The program stores the set of visited grid cells as a mapping from (x, y) coordinates (of type "int * int") to booleans, implemented as a balanced binary tree by the OCaml library. The grid is then traversed recursively from the bottom left-hand cell (0, 0) by moving randomly to unvisited, on-board neighbours left, right, up or down.

The maze is rendered while it is generated, as OpenGL points and lines. The result is memoized in a display list for fast redisplay.

The complete source code, along with the compilation command, is available on-line here:


Image of the Day Gallery



Copyright 1999-2008 (C) FLIPCODE.COM and/or the original content author(s). All rights reserved.
Please read our Terms, Conditions, and Privacy information.