Re: [問題] 關於上下左右轉換的問題

看板Perl作者 (....N )時間17年前 (2007/10/16 00:11), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串3/5 (看更多)
※ 引述《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
文章代碼(AID): #174v4LyX (Perl)
文章代碼(AID): #174v4LyX (Perl)