http://www.perlmonks.org?node_id=324485

hi all,
unlike some of my other games, this one is playable:
keys w=up,s=down,a=left,d=right).
use Term::ReadKey;ReadMode 3;%v=qw{a -1 s 80 w -80};$f=print"\ec";{$d+ +=$ v{$c=ReadKey(-1)||$c}||1;p($d=$d>1600?$d-1600:$d<0?$d+1600:$d);$d-int$ +f? p(pop@s,$"):p($f=rand 800);9x1e7;map$d-$_||${ReadMode 0;exit},@s;@s=($ +d, @s);redo}sub p{printf"\e\[%d;%dH%s\e[20H",1+$_[0]/80,$_[0]%80,$_[1]||x +}

It's not very portable at all, it needs vt100 and uses my really very dodgy timing tool:
If it goes too quick change this string: 9x1e7 to 9x1e8 for slower, 9x1e6 for faster.
(standard boilerplate apologies if it's been done here before - yes i know it's been done before elsewhere!!!)
Enjoy!
Alex