Source for demo by Roy F. Dvorak. See also description.
$W=640.0;$H=480.0;$pz=7.50;$X=$Y=0.0;$to='';$fq=30;
$g=document.getElementById( "c" );
$g.style.border="1px solid black";$c=$g.getContext('2d');$nw=new Date();$now=$nw.getTime();$g.width=$W;$g.height=$H;
$c.beginPath();$X=($W/2)-$pz;$Y=($H/2)-$pz;$c.fillStyle='#ff0000';$c.fillRect($X,$Y,$pz,$pz);
$to=setInterval(function(){$rm=Math.random();
if($rm <.250){$X += $pz;$bgc='red';}
if($rm >=.250 && $rm <.500){$Y -= $pz;$bgc='green';}
if($rm >=.500 && $rm <.750){$X -= $pz;$bgc='blue';}
if($rm >=.750 ){$Y += $pz;$bgc='magenta';}
if(($X<=0)||($X>=$W)||($Y<=0)||($Y>=$H))
{clearInterval($to); $c.font='bold 16px verdana';
$nw2=new Date();$end=$nw2.getTime();$dt=($end-$now)/1000.;$rt="It's Over: Run Time = "+$dt+" seconds";
$c.fillStyle='#000';$c.fillText($rt,20,30); return;}
$c.fillStyle=$bgc;$c.fillRect( $X, $Y, $pz, $pz );
},$fq);