4 use experimental 'multidimensional';
7 my ($x, $y) = (1000, 1000);
8 my ($xmin, $xmax, $ymin, $ymax) = (1000) x 4;
18 my ($dir, $len, $col) = /^(.) (\d+) \(\#(\w+)\)/;
19 say "at $x,$y dir $dir len $len col $col";
21 $x += $dir{$dir}->[0];
22 $y += $dir{$dir}->[1];
23 say " at $x,$y len $len";
25 $xmax = $x if $xmax < $x;
26 $ymax = $y if $ymax < $y;
27 $xmin = $x if $xmin > $x;
28 $ymin = $y if $ymin > $y;
34 say "$xmin..$xmax x $ymin..$ymax";
37 for my $y ($ymin .. $ymax) {
40 for my $x ($xmin .. $xmax) {
43 if ($map{$x,$y-1} && $map{$x,$y+1}) {
46 } elsif ($map{$x,$y-1}) {
50 } elsif ($from == 0) {
55 } elsif ($map{$x,$y+1}) {
59 } elsif ($from == 0) {
68 print $map{$x,$y} || $in ? 'O' : '.';