- 论坛徽章:
- 12
|
本帖最后由 523066680 于 2018-02-02 19:25 编辑
回复 19# 情节可以很简单
我的TXT版本刚写好,读取 bgr_trim8.txt 数据并输出字符图
- use File::Slurp;
- use List::Util qw/max min/;
- STDOUT->autoflush(1);
- my @data = read_file("bgr_trim8.txt");
- our ( @X, @Y, @Z, %edge );
- for my $row ( @data )
- {
- $row=~/\((-?\d+),(-?\d+)\)\s+(\w+)/;
- push @X, $1;
- push @Y, $2;
- push @Z, $3;
- }
- %edge = (
- 'x' => { 'min' => min( @X ), 'max' => max( @X ) },
- 'y' => { 'min' => min( @Y ), 'max' => max( @Y ) },
- );
- dump %edge;
- our @buffer;
- create_buffer();
- draw_buffer();
- <STDIN>;
- sub draw_buffer
- {
- our ( @X, @Y, @Z, %edge );
- my ($x, $y, $str);
- for my $id ( 0 .. $#X )
- {
- $x = $X[$id] - $edge{x}{min};
- $y = $Y[$id] - $edge{y}{min};
- $buffer[ $y ][ $x ] = $Z[$id];
- }
- $str = join "\n", map { join("", @$_ ) } ( @buffer );
- print $str;
- write_file("graph.txt", $str );
- }
- sub create_buffer
- {
- my $dtx = $edge{x}{max} - $edge{x}{min} + 1;
- my $dty = $edge{y}{max} - $edge{y}{min} + 1;
- grep { push @buffer, [(".")x$dtx]; } ( 1 .. $dty );
- }
复制代码
执行后生成 graph.txt,部分输出(整个发上来太占位)
- ("y", { max => 73, min => 1 }, "x", { max => 41, min => -36 })
- ...............................A...GFGDGFFFCFEE...............................
- ...........................DFECDGGDGHFFEDEHGFEEDEDG...........................
- ........................EGEDEGEFHGFFEGHFGEGCDEDEFEEDDG........................
- ......................EEGDFGEFEFDEFGGGEFEFFEDBFDFEFEDFDF......................
- ....................FEFHEEDFEGFEGDFEEGFEDFFEFEEGDGEGEFEEEF....................
- ..................EFFFFFFHHFCFEEDDFFFGEFEFEFFFEGEFFDBFDCFFFB..................
- ................EEFGFFCEDFEFFEFEGEGEEEDEFEFFGGEFEFGGDFFEFDHEEF................
- ...............DFDDFDEDFFDDEGGEGDDFDEEDCEHEFEFGDDDGEDEEDGDDEFEF...............
- ..............EEEEFFFEFFEFFEDEFEEGGEEDCFCGDEEEFFFEFEDFEFFBGEFFFD..............
- .............FDGEEEDDCCEFFGFEEFDEDFCFGDF.GEECEEEFDFEDEDEFHEDHDEE..............
- ...........EFGEFHGGEFEFEEFEDEFEDFFCEEGEFFFEGFEGFDDDGDEEDFFFDDFGDFC............
- ..........CDEGEEFFFEEDFGGFGFFDDGFEDFDDDFCCEDFDFFGFDIBFFDFFDEGDFEGEG...........
- .........EHEGGEEEFFEEEGEEGEFCDEFFDEFDDEDFFGFEFFEEDFFFFFFEEEEFFGEEDGC..........
- ........CFFFCDEGGFEGEEEGBDDCDFFCEGFGFFFFEFEDGDCFGEGDEEEDFEEFDEEGFDDGD.........
复制代码
|
|