Вчера обнаружил в своем скрипте ошибку :(
#!perl -naF
map{
if(/[hjkl]/){
$y[$n]='o';
p...@p,$n;
$y[$p[$t+=$y[$n+=${$_}]!=1]]='-';
$y[$n]='x'
}else{
p...@y,$_;
$n=$#y if/x/;
$p[m/o/]=$#y
}
}...@f;
$h=-1;$l=1;$j=$#F+1;$k=-$j;
end{...@y;pr...@y}
Вот здесь
$p[m/o/]=$#y
заковырка: если после первого смещения головы питона он натыкается на
яблоко, то в самом конце всего поля @y перенос строки заменится на '-'.
Исправляется это заменой строки на старый вариант:
$p[1]=$#y if/o/
В итоге, если еще чуть-чуть заоптимизировать, получается 181 байт:
#!perl -naF
map{
if(/[hjkl]/){
$y[$x]='o';
p...@p,$x;
$y[$p[$o+=$y[$x+=${$_}]!=1]]='-';
$y[$x]='x'
}else{
$...@y if/x/;
$p[...@y if/o/;
p...@y,$_
}
$l=1;$h=-1
}...@f;
$...@f;$...@f;
end{...@y;pr...@y}
Блин, мне стыдно %( Выиграл с глючным скриптом...
--
Moscow.pm mailing list
[email protected] | http://moscow.pm.org