package TextPrinter;
use strict;
use warnings;
use Term::ANSIColor;
my @colours = (
color('reset'),
(
map { color($_,'on_white') }
'blue', 'green',
),
(
map { color($_,'on_black') }
'dark yellow','dark green',
),
);
sub draw_cell {
my ($cell) = @_;
print $colours[$cell->[0]],
$cell->[1];
}
{
my $white = color('black','on_white');
my $reset = color('reset');
sub draw_row {
my ($row,$scale)=@_;
$scale||=1;
print $white,' 'x(3*$scale);
for my $cell (@$row) {
draw_cell($cell) for 1..$scale;
}
print $white,' 'x(3*$scale);
print $reset,"\n";
}
sub draw_empty_row {
my ($row,$scale)=@_;
$scale||=1;
print $white,' 'x((6+@$row)*$scale),$reset,"\n" for 1..(3*$scale);
}
}
sub draw_whole {
my ($arr,$scale)=@_;
$scale||=1;
draw_empty_row($arr->[0],$scale);
for my $row (@$arr) {
draw_row($row,$scale) for 1..$scale;
}
draw_empty_row($arr->[0],$scale);
}
1;