use GD;
$i = new GD::Image( 153, 153, );
$i->colorAllocate( 200, 200, 200 );
####
sub l {
$p = new GD::Polygon;
$x=shift;
$y=shift;
$p->addPt( ( $x += shift ), ( $y += shift ) ) while $#_;
$i->filledPolygon( $p, shift );
}
####
sub d {
l @_, 0, 0, 20, -10, 20, 10, -20, 10, $i->colorAllocate( 153, 153, 153, );
l @_, 20, 10, 20, -10, 0, 20, -20, 10, $i->colorAllocate( 20, 0, 0 );
}
####
sub a {
d @_;
l @_, 0, 0, 0, 20, 20, 10, 0, -20, $i->colorAllocate( 20, 153, 153, );
}
####
a("73","73");
a("43","88");
a("13","103");
a("13","73");
a("13","43");
a("13","13");
a("43","28");
a("73","43");
a("103","58");
####
d("73","73");
####
open FH, ">o.png";
binmode FH;
print FH $i->png
####
$$_ = ord(shift) - 20 for qw.x y.;
####
a"]","]";
a"?","l";
a"!","{";
a"!","]";
a"!","?";
a"!","!";
a"?","0";
a"]","?";
a"{","N";
d"]","]"
####
$_ = "]]?l!{!]!?!!?0]?{N";
s#(.)(.)#a"$1","$2";\n#g;
/".+;/;
$_ .= "d$&";
eval;
####
for$r(qw.$i-> colorAllocate( Polygon shift) l@_,
KK); GD 10, I sub 153, 20 new.){$l=chr 65+$c++;s#$l#$r#g}