七行プログラミング

このエントリーをはてなブックマークに追加
885853
>>880
パワーエサ(つうかただの無敵)と上下通り抜け付けて 7 行。
http://boobar.hoops.ne.jp/pacmaso.tar.gz

($d,$p,@e)=split/,/,<>;chomp($_=<>);$c=@m=split//;@m=(0,@m,map{chomp;split//}<>
);sub u{@m[@e,$p]=@_}sub w{($g,*z)=@_;$z+=$g==1&&$z%$c==1?$c:$g==2&&$z+$c>$#m?-
$#m:$g==3&&$z-$c<1?$#m:$g==4&&$z%$c==0?-$c:0;$m[$z+$n[$g]]eq'#'or$z+=$n[$g]}@g=
('.')x@e;$t=0;while(@n=(0,-1,$c,-$c,1)){u(('E')x@e,'P');print$m[$_],($_%$c?'':"
")for 1..@m;$e=grep/[.o]/,@m;print"R:$e P:$t >";$e&&($t||$p!=$_)or exit for@e;u
@g,' ';$t--if$t;$g=<>%5||exit;w $g,*p;for(0..$#e){$p==($b=$e[$_])&&next;w 1+int
rand 4,*b while$b==$e[$_];$g[$_]=$m[$e[$_]=$b]}$t+=$d if$m[$p]eq'o'}

改行位置注意な。(w