Perl golf 2009

Feb 10, 2012 22:10

Отыскал своё решение задачки с Perl golf 2009...

#!perl
sub r{substr$f[$y],$x,1}sub u{substr$f[$y],$x,1,"@_"}sub f{local($x,$y)=@_;if(r=~/x|o/){push@p,[$x,$y];u"-";f($x+1,$y)+f($x-1,$y)+f($x,$y+1)+f($x,$y-1)}}sub g{/h/?$x--:/l/?$x++:/k/?$y--:$y++;@p=([$x,$y],@p);r!~/1/&&pop@p;u"-"}@f=<>;@c=split//,pop@f;for(pop@c;($x=index$f[++$y],'x')<0;){}f$x,$y;g for@c;($x,$y)=@$_,u$z++?"o":"x"for@p;print@f

программирование, perl

Previous post Next post
Up