Re: [問題] 關於上下左右轉換的問題
※ 引述《handsomegirl (薰)》之銘言:
: #########################################
: 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2
: 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9
: 10 E E F F E .
: 11 8 F 2 2 2 2 2 2 2 E 2 F 2 2 2 E E E E
: 12 9 9 2 2 2 2 2 2 2 2 2 E E 2 2 E 2 2 E E
: 13 F 2 F 2 F F 2 2 2 2 2 E 2 F 2 2 2 2 E 2 E E
: 14 8 2 2 2 2 2 2 2 2 2 2 2 2 2 F E 2 E E E E E
: 15 2 2 2 2 2 2 2 2 2 2 2 2 2 E 2 E E E E E E E
: 16 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
: 17 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 F 2
: 現在我有這樣一個圖
: 然後黃色的數字因為代表行列所以不希望改變
: 其他的部份除了上下顛倒之外,我還希望左右相反
: 等於把整個圖做180度的旋轉
: 我目前的想法是先辦認前面的行列,把它視為INDEX
: 再把後面的做REVERSE
: 只是再來就遇到一些瓶頸
: 不曉得有沒有什麼好方法~
: 懇請高手來解答,謝謝~
use List::Util qw( max );
open $F, '<', 'fun.txt';
@raw = <$F>;
close $F;
chomp for @raw;
$max_len = max map { length($_) } @raw;
@p = @raw[0..4];
@h = @raw[5..$#raw];
for ( @h ) {
@l = split //,$_;
push @l, ' 'x ( $max_len - @l );
push @yy, [ @l[0..1] ];
push @ss, [ @l[2..$#l] ];
}
for ( 0.. (@ss/2 - 1)) {
($ss[$_],$ss[$#ss-$_]) = ($ss[$#ss-$_],$ss[$_]);
}
for (@ss) {
$_ = [reverse @$_];
}
for ( 0..$#yy ) {
push @{$yy[$_]}, @{$ss[$_]};
}
@handle = (@p ,map { join('',@$_) } @yy);
print $_,"\n" for @handle;
參考看看
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 218.168.132.142
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 3 之 5 篇):
Perl 近期熱門文章
PTT數位生活區 即時熱門文章