Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
LICENSE
Maze.java
Maze.kt
Maze.scala
README.md
maze.4th
maze.adb
maze.arm
maze.awk
maze.bas
maze.c
maze.clj
maze.cob
maze.cpp
maze.d
maze.dylan
maze.e
maze.erl
maze.f90
maze.factor
maze.go
maze.hs
maze.io
maze.jcl
maze.jl
maze.lisp
maze.lua
maze.mips
maze.ml
maze.nim
maze.pas
maze.pl
maze.pli
maze.py
maze.r
maze.rb
maze.rs
maze.s
maze.scad
maze.sh
maze.sml
maze.sno
maze.sparc
maze.st
maze.swift
maze.tcl
maze.v
maze.vim

README.md

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
  • maze.adb Ada
  • maze.arm ARM Assembly Language
  • maze.awk AWK
  • maze.bas BASIC
  • maze.c C
  • 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 (https://github.com/joewing/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 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.