gnugo-devel
[Top][All Lists]
Advanced

[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 ")";





reply via email to

[Prev in Thread] Current Thread [Next in Thread]