七行プログラミング

このエントリーをはてなブックマークに追加
>>853からさらに-12bytes

sub v{substr$b,$v=$_[0],1}sub u{substr$b,$_[0],1,$_[1]}sub f{'.'eq v$_[0]}$y=$c
=0;$l=12;$k=19;@n=(-1,11,-11,1,1,-11);$o='#'x10;$m='.'x8;$b="$o\n".("#$m#\n"x8)
."$o\n";while(){u$l,'P';u$k,'E';print"${b}YOU:$y\nCOM:$c\n";exit if$l==$k||$b!
~/\./;u$l,' ';exit if!($m=<>%5);$l=$v if'#'ne v$l+$n[$m-1];$y++if f$l;u$k,' ';
next if$l==$k;$c++if f($k=int rand 4<3&&(f$k-1||f$k+1||f$k-11||f$k+11)?$v:$k+(v
($k+($d=$n[int rand 6]))eq'#'?-$d:$d));}