[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[gnugo-devel] matcher_check cleanups
From: |
Evan Berggren Daniel |
Subject: |
[gnugo-devel] matcher_check cleanups |
Date: |
Mon, 2 Sep 2002 16:08:24 -0400 (EDT) |
This patch is assorted matcher_check cleanups and simplifications.
Also implements a couple more error checks.
Thanks
Evan Daniel
Index: matcher_check
===================================================================
RCS file: /cvsroot/gnugo/gnugo/interface/gtp_examples/matcher_check,v
retrieving revision 1.14
diff -u -r1.14 matcher_check
--- matcher_check 2 Sep 2002 17:18:58 -0000 1.14
+++ matcher_check 2 Sep 2002 20:06:52 -0000
@@ -153,10 +153,6 @@
exit;
}
- #if (defined($stable)) {
- # warn "When loading a file, --stable is ignored.";
- #}
-
$pidp = open2($prog_out, $prog_in, $program);
$pids = open2($stable_out, $stable_in, $stable) if defined($stable);
print "program pid: $pidp\n" if $verbose;
@@ -184,33 +180,33 @@
for ($movenum = 1; $movenum <= $movecount + 1; $movenum++)
{
#load the file, check the statuses, next move.
- my $lmove = $movenum + 1;#number to load up to
+ my $lmove = $movenum + 1;#number to load up to
print "loading move $movenum\n" if $verbose;
- print $prog_in "loadsgf $loadfile $lmove\n";
+ print $prog_in "loadsgf $loadfile $lmove\n";
eat_no_response($prog_out);
- if (!defined($noilcheck)) {
- check_matcher($prog_in, $prog_out);
- print "done checking status.\n" if ($verbose);
- }
+ if (!defined($noilcheck)) {
+ check_matcher($prog_in, $prog_out);
+ print "done checking status.\n" if ($verbose);
+ }
- #do stable checks
- if (defined($stable)) {
- print $stable_in "loadsgf $loadfile $lmove\n";
- $toplay = eat_one_line($stable_out); #whole word in this case
- $toplay =~ s/^=//smg;
- $toplay =~ s/ //smg;
- print $prog_in "genmove_$toplay\n";
- print $stable_in "genmove_$toplay\n";
- $move = eat_move($prog_out);
- $stable_move = eat_move($stable_out);
- if ($move ne $stable_move and defined ($stable)) {
- print "At move $movenum, $toplay\:\n";
- print "Test version played $move\n";
- print "Stable version played $stable_move\n";
- } else {
- print "$toplay plays $move\n" if $verbose;
- }
- }
+ #do stable checks
+ if (defined($stable)) {
+ print $stable_in "loadsgf $loadfile $lmove\n";
+ $toplay = eat_one_line($stable_out); #whole word in this case
+ $toplay =~ s/^=//smg;
+ $toplay =~ s/ //smg;
+ print $prog_in "genmove_$toplay\n";
+ print $stable_in "genmove_$toplay\n";
+ $move = eat_move($prog_out);
+ $stable_move = eat_move($stable_out);
+ if ($move ne $stable_move and defined ($stable)) {
+ print "At move $movenum, $toplay\:\n";
+ print "Test version played $move\n";
+ print "Stable version played $stable_move\n";
+ } else {
+ print "$toplay plays $move\n" if $verbose;
+ }
+ }
}
print "movenum: $movenum\n" if ($verbose);
@@ -238,9 +234,7 @@
}
#set autoflushing for sgf file
- select(SGFFILEHANDLE);
- $| = 1;
- select(STDOUT);
+ SGFFILEHANDLE->autoflush(1);
print $prog_in "boardsize $size\n";
eat_no_response($prog_out);
@@ -279,17 +273,26 @@
$move = "";
if ($handicap < 2) {
- $toplay = 'B';
+ $toplay = "black";
}
else {
- $toplay = 'W';
+ $toplay = "white";
print $prog_in "fixed_handicap $handicap\n";
+
+ $handicap_stones = eat_handicap($prog_out);
+ my $stable_stones = $handicap_stones;
+
if (defined($stable)) {
print $stable_in "fixed_handicap $handicap\n";
- eat_handicap($stable_out);
+ $stable_stones = eat_handicap($stable_out);
}
-
- $handicap_stones = eat_handicap($prog_out);
+
+ if ($stable_stones ne $handicap_stones) {
+ print "Handicap discrepancy:\n";
+ print "Test: $handicap_stones\n";
+ print "Stable: $stable_stones\n";
+ }
+
if (defined $sgffilename) {
print SGFFILEHANDLE $handicap_stones;
}
@@ -297,16 +300,11 @@
$movenum = 1;
while ($pass < 2) {
- if ($toplay eq 'B') {
- print $prog_in "genmove_black\n";
- print $stable_in "genmove_black\n" if defined($stable);
- } else {
- print $prog_in "genmove_white\n";
- print $stable_in "genmove_white\n" if defined($stable);
- }
-
+ print $prog_in "genmove_$toplay\n";
$move = eat_move($prog_out);
+
if (defined($stable)) {
+ print $stable_in "genmove_$toplay\n" if defined($stable);
$stable_move = eat_move($stable_out);
print $stable_in "undo\n";
eat_no_response($stable_out);
@@ -321,14 +319,15 @@
}
$sgfmove = standard_to_sgf($move);
- print SGFFILEHANDLE ";$toplay\[$sgfmove\]\n" if defined $sgffilename;
-
- if ($toplay eq 'B') {
- print $stable_in "black $move\n" if defined($stable);
- $toplay = 'W';
+ my $tpc = "B"; #toplay char
+ $tpc = "W" if ($toplay eq "white");
+ print SGFFILEHANDLE ";$tpc\[$sgfmove\]\n" if defined $sgffilename;
+
+ print $stable_in "$toplay $move\n" if defined($stable);
+ if ($toplay eq "black") {
+ $toplay = "white";
} else {
- print $stable_in "white $move\n" if defined($stable);
- $toplay = 'B';
+ $toplay = "black";
}
eat_no_response($stable_out) if defined($stable);
@@ -337,18 +336,31 @@
} else {
$pass = 0;
}
- if ($verbose > 1) {
+
+ if ($verbose > 2) {
print $prog_in "showboard\n";
eat_no_response($prog_out);
+ if (defined($stable)) {
+ print $stable_in "showboard\n";
+ eat_no_response($stable_out);
+ }
}
check_matcher($prog_in, $prog_out) if !defined($noilcheck);
- $movenum++; #next move
+ $movenum++;
}
print $prog_in "estimate_score\n";
$result = eat_score($prog_out);
+ if (defined($stable)) {
+ print $stable_in "estimate_score\n";
+ my $stable_result = eat_score($stable_out);
+ print "scoring discrepancy. Stable score: $stable_result.\n" if
($stable_result ne $result);
+ }
+
print "Result: $result\n";
print $prog_in "quit\n";
+ print $stable_in "quit\n" if defined($stable);
+
if (defined $sgffilename) {
print "sgf file: $sgffile\n";
print SGFFILEHANDLE ")";
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [gnugo-devel] matcher_check cleanups,
Evan Berggren Daniel <=