5 use experimental 'multidimensional';
9 sub sgn($x) { $x > 0 ? 1 : $x < 0 ? -1 : 0 };
16 for my ($x, $y) (@list) {
21 while ($x0 != $x || $y0 != $y) {
25 $maxy = $y if !defined $maxy || $y > $maxy;
34 my ($sx, $sy) = (500, 0);
37 if ($sy >= $maxy + 1) {
40 } elsif (!$map[$sy+1][$sx]) {
42 } elsif (!$map[$sy+1][$sx-1]) {
45 } elsif (!$map[$sy+1][$sx+1]) {
49 last UNIT if $map[$sy][$sx];