Merge pull request #50 from lemonsqueeze/can_countercap
[pachi.git] / tools / board_print_to_gtp
blobe5485d10fef1b86239233febe63f2f0e016a7334
1 #!/usr/bin/perl
2 # Convert ascii board diagrams from board_print() to gtp.
3 # Usage: ./board_print_to_gtp > foo.gtp
4 # copy paste the diagram, ^D
5 # tweak foo.gtp: script doesn't pay attention to last
6 # move currently so always sets black to play.
8 use utf8;
9 binmode STDIN, ":utf8";
10 binmode STDOUT, ":utf8";
12 my $asdf = "abcdefghjklmnopqrstuvwxyz";
14 sub coord2gtp
16 my ($x, $y) = @_;
17 $y += 0;
18 return substr($asdf, $x-1, 1) . $y;
21 my $ab = "";
22 my $aw = "";
23 my $size = 0;
24 foreach my $s (<STDIN>)
26 $s =~ s/ยท/./g;
27 # remove current move mark
28 $s =~ s/([OX.])\)/$1 /;
29 if ($s =~ m/^ ([ 1][0-9]) \| (([.OX] )+)\|/ ||
30 $s =~ m/^([ 1][0-9]) *(([.OX] )+) /)
32 my ($l, $s) = ($1, $2);
33 $s =~ s/ //g;
34 my @t = split("", $s);
36 $size = @t;
37 for (my $i = 0; $i < @t; $i++)
39 if ($t[$i] ne "X") { next; }
40 $ab .= sprintf("play b %s\n", coord2gtp($i+1, $l));
43 for (my $i = 0; $i < @t; $i++)
45 if ($t[$i] ne "O") { next; }
46 $aw .= sprintf("play w %s\n", coord2gtp($i+1, $l));
51 print "boardsize $size\n";
52 print "clear_board\n";
53 print "komi 7.5\n";
54 print "$ab";
55 print "$aw";
56 print "genmove b\n";