JG's tiny JS Maze

A small Javascript maze

by Jonathan Gough

HTML

<!-- Not the shortest possible maze program, 
     but nevertheless a tiny 'hard' maze...!
     [email protected] -->
     
↓<br>
<canvas id="c"></canvas>
→

CSS

#c {background-color:#fff;}
body {background-color:#aaa;font-size:32px;}

JavaScript

r=Math.random;v=document.getElementById("c"),s=512,g=16,c=v.getContext("2d");v.width=v.height=s;function d(i,j,k,l){c.beginPath();var m,p,a=k-i,b=l-j;if(a>g&b>g)if(r()<a/b){m=a/2+i;c.setLineDash([(r()*(b/g)|0)*g,g,l]);c.moveTo(m,j);c.lineTo(m,l);c.stroke();d(i,j,m,l);d(m,j,k,l)}else m=b/2+j,c.setLineDash([(r()*(a/g)|0)*g,g,k]),c.moveTo(i,m),c.lineTo(k,m),c.stroke(),d(i,j,k,m),d(i,m,k,l)}d(0,0,s,s)