lyoute said:
Thanks a lot.
actually i reading some files like:
HA[9]AB[pd][dp][dd][pp][dj][pj][jp][jd][jj]
;W[mc];B[nc];W[nb];B[oc];W[ob];B[md];W[lc];B[ld];W[kd];B[kc];W[ke]
;B[kb];W[lb];B[pb];W[jc];B[jb];W[ic];B[ib];W[hc];B[hb];W[gc];B[gb];W[fc]
;B[eb];W[ma];B[fb];W[oa];B[ie];W[nd];B[me];W[od];B[pc];W[nf];B[ne];W[oe]
;W[mc] means White color on location y = (ord 'm') - (ord 'a') , x =
(ord 'c' - ord 'a')
;B[] means Black color on blar blar blar.
AB[pd][dp]...
means Black color on location [pd][dp][dd][pp][dj][pj][jp][jd][jj]
i just can't think of a clever way to build this map....
....
Well, if that is really literally the way your data is, you could do
something like:
use warnings;
use strict;
use Data:
umper;
my %colorcode=(';B','black',';W','white','AB','black','AW','white');
my $in;
my @color;
{local $/;$in=<DATA>} #slurp
while($in=~/([A-Z;]{2})((?:\[[a-z][a-z]\])+)/g){
my $type=$1;
my $val=$2;
while($val=~/\[([a-z])([a-z])\]/g){
my $y=ord($1)-ord('a');
my $x=ord($2)-ord('a');
$color[$x][$y]=$colorcode{$type};
}
}
print Dumper(@color);
__END__
HA[9]AB[pd][dp][dd][pp][dj][pj][jp][jd][jj]
;W[mc];B[nc];W[nb];B[oc];W[ob];B[md];W[lc];B[ld];W[kd];B[kc];W[ke]
;B[kb];W[lb];B[pb];W[jc];B[jb];W[ic];B[ib];W[hc];B[hb];W[gc];B[gb];W[fc]
;B[eb];W[ma];B[fb];W[oa];B[ie];W[nd];B[me];W[od];B[pc];W[nf];B[ne];W[oe]