19/03/21 14:37:03.32 Krn8F3T2.net
>>751 Perl5
@a = map{[split]} <DATA>;
for $y (0..$#a) {
$h{$a[$y][$_]} = [$y,$_,''] for 0..$#a;
}
@s = keys %h;
%r = qw{-1,0 ↑ 1,0 ↓ 0,-1 ← 0,1 →};
for $i (1..@s) {
if ($i == @s) {
$d = '★'
} else {
$y = $h{$i+1}->[0] - $h{$i}->[0];
$x = $h{$i+1}->[1] - $h{$i}->[1];
$d = $r{"$y,$x"}
}
$h{$i}->[2] = $d;
}
($y, $x, $d) = @$_, $a[$y][$x] = $d for values %h;
use feature say;
say "@$_" for @a;
__DATA__
1 4 5 6
2 3 8 7
15 14 9 10
16 13 12 11
実行結果
~ $ perl 13_746.pl
↓ → → ↓
→ ↑ ↓ ←
↓ ← → ↓
★ ↑ ← ←