RosettaCodeData/Task/Zig-zag-matrix/Perl/zig-zag-matrix-2.pl
2026-02-01 16:33:20 -08:00

16 lines
364 B
Perl

sub zig_zag {
my ($w, $h, @r, $n) = @_;
$r[ $_->[1] ][ $_->[0] ] = $n++ for
sort { $a->[0] + $a->[1] <=> $b->[0] + $b->[1] or
($a->[0] + $a->[1]) % 2
? $a->[1] <=> $b->[1]
: $a->[0] <=> $b->[0]
}
map { my $e = $_;
map{ [$e, $_] } 0 .. $w-1
} 0 .. $h - 1;
@r
}
print map{ "@$_\n" } zig_zag(3, 5);