Source for demo by h3nr1x.
D=document;A=D.body.children[0];C=A.getContext('2d');A.width=w=600;A.height=h=400;r=Math.random;a=String.fromCharCode;S=['10345210242424','10761010244444','24160504121111','04360614222202','1034741030505'];Q=m=U=X=z=L=F=I=l=x=y=k=0;x=y=200;B=9755;V=3;C.font='35px a';C.r=C.fillRect;C.t=C.fillText;Z=['#000','gray','red','#0f0','#fff','blue'];I=M=1;R=75;G=[];for($=-1;++$<9;)G.push(~~(19+r()*9));function d(x,y,s,I,l){u=x,v=y;P='1414'+S[I];for(j=-1;++j<54;){K=j%6;if(!K)v+=s;if((P[~~(j/3)]>>2-j%3)&1)C.r(u+(l?5-K:K)*s,v,s,s)}}function f(c){C.fillStyle=c}D.onkeydown=function(e){if(V>0)k=e.keyCode};setInterval(function(){F++;f(Z[0]);C.r(0,0,w,h);f(Z[1]);C.r(0,270,w,h/2);f(Z[!I?2:5]);d(x+l,y+l,9,I,l);f(Z[3]);if(r()<0.09)l=!l;for($=-1;++$<7;){f(Z[$%6]);d(75*$,280+r()*I*5,G[$],1,$&1)}f(Z[1]);C.r(52,16,28,34);f(Z[4]);if(!M&&r()<0.5)M=~~(r()*4);if(M){if(k)if(k-36==M){Q+=R-m;m=k=M=0;I%=4;I++;R--}else{I=0;V--;M=k=0}else f(Z[4]);C.t(a(B+M),55,45);C.t(Q,55,135);if(m++>R){if(!k)I=0;m=M=0}}f(Z[2]);C.t(a(B+74)+' '+V,50,85)},30)