Skip to content

joewing/maze

Repository files navigation

Maze Generators

This is a collection of maze generators in variety of programming languages. Where possible, the same basic maze generation algorithm is used (recursive backtracking). Some of the maze generators include a solver as well. Keep in mind that I wrote these over a span of several years primarily as a way to familiarize myself with new programming languages. For that reason, some of the code could be improved, which I fully intend to do eventually.

Here is a list of the languages:

  • maze.4th Forth
  • maze8.8o Octo Chip-8 high-level assembly language
  • maze.adb Ada
  • maze.arm ARM Assembly Language
  • maze.awk AWK
  • maze.bas BASIC
  • maze.c C
  • maze8.ch8 Chip-8
  • maze.clj Clojure
  • maze.cob COBOL
  • maze.cpp C++
  • maze.d D
  • maze.dylan Dylan
  • maze.e Eiffel
  • maze.erl Erlang
  • maze.factor Factor
  • maze.f90 Fortran
  • maze.go Go
  • maze.hs Haskell
  • maze.io Io
  • Maze.java Java
  • maze.jcl IBM System/360 Assembly Language
  • maze.jl JL
  • maze.kt Kotlin
  • maze.lisp Common Lisp
  • maze.lua Lua
  • maze.mips 64-bit MIPS Assembly Language
  • maze.ml OCaml
  • maze.nim Nimrod
  • maze.pas Pascal
  • maze.pl Perl
  • maze.pro Prolog
  • maze.pli PL/1
  • maze.py Python
  • maze.r R
  • maze.rb Ruby
  • maze.rs Rust
  • maze.s x86-64
  • maze.scad OpenSCAD
  • Maze.scala Scala
  • maze.sml SML
  • maze.sno SNOBOL4
  • maze.sparc SPARC64 Assembly Language
  • maze.st Smalltalk
  • maze.swift Swift
  • maze.tcl TCL
  • maze.v Coq
  • maze.vim VIM

Some languages in which I have yet to implement a maze generator include:

  • APL
  • Groovy
  • J
  • Joy
  • Julia
  • Vala

There are, of course, many others. I prioritize real programming languages over joke programming languages such as BF, Whitespace, INTERCAL, etc. There are two reasons for this: (1) most of the joke programming languages are very primitive, making the implementation of a maze generator a complex task and (2) there are many real programming languages available that provide interesting targets.