gnugo-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[gnugo-devel] semeai patch


From: Gunnar Farneback
Subject: [gnugo-devel] semeai patch
Date: Wed, 09 Jan 2002 20:30:07 +0100
User-agent: EMH/1.14.1 SEMI/1.14.3 (Ushinoya) FLIM/1.14.2 (Yagi-Nishiguchi) APEL/10.3 Emacs/20.7 (sparc-sun-solaris2.7) (with unibyte mode)

This patch addresses a FIXME in semeai.c.

- ko return code from owl_does_attack() and owl_does_defend() handled
  in analyze_semeai()

/Gunnar

Index: engine/semeai.c
===================================================================
RCS file: /cvsroot/gnugo/gnugo/engine/semeai.c,v
retrieving revision 1.29
diff -u -r1.29 semeai.c
--- engine/semeai.c     24 Dec 2001 00:53:30 -0000      1.29
+++ engine/semeai.c     8 Jan 2002 22:37:59 -0000
@@ -315,14 +315,16 @@
     if (dragon[your_dragon].owl_attack_point
        == dragon[my_dragon].owl_defense_point)
       return;
-    /* FIXME: Keep track of the return code from owl_does_attack(). */
-    if (dragon[my_dragon].owl_defense_point != NO_MOVE
-       && owl_does_attack(dragon[my_dragon].owl_defense_point, your_dragon)) {
-      add_owl_attack_move(dragon[my_dragon].owl_defense_point, your_dragon,
-                         WIN);
-      DEBUG(DEBUG_SEMEAI, "added owl attack of %1m at %1m\n",
-           your_dragon, dragon[my_dragon].owl_defense_point);
-      owl_code_sufficient = 1;
+    if (dragon[my_dragon].owl_defense_point != NO_MOVE) {
+      int acode = owl_does_attack(dragon[my_dragon].owl_defense_point,
+                                 your_dragon);
+      if (acode != 0) {
+       add_owl_attack_move(dragon[my_dragon].owl_defense_point, your_dragon,
+                           acode);
+       DEBUG(DEBUG_SEMEAI, "added owl attack of %1m at %1m with code %d\n",
+             your_dragon, dragon[my_dragon].owl_defense_point, acode);
+       owl_code_sufficient = 1;
+      }
     }
   }
 
@@ -337,28 +339,30 @@
     if (dragon[your_dragon].owl_attack_point
        == dragon[my_dragon].owl_defense_point)
       return;
-    /* FIXME: Keep track of the return code from owl_does_defend(). */
-    if (dragon[your_dragon].owl_attack_point != NO_MOVE
-       && owl_does_defend(dragon[your_dragon].owl_attack_point, my_dragon)) {
-      add_owl_defense_move(dragon[your_dragon].owl_attack_point, my_dragon,
-                          WIN);
-      DEBUG(DEBUG_SEMEAI, "added owl defense of %1m at %1m\n",
-           my_dragon, dragon[your_dragon].owl_attack_point);
-      if (dragon[my_dragon].owl_status == DEAD) {
-       for (m = 0; m < board_size; m++)
-         for (n = 0; n < board_size; n++) {
-           int pos = POS(m, n);
-           if (board[pos] == board[my_dragon]
-               && is_same_dragon(pos, my_dragon)) {
-             dragon[pos].owl_status = CRITICAL;
-             dragon[pos].matcher_status = CRITICAL;
+    if (dragon[your_dragon].owl_attack_point != NO_MOVE) {
+      int dcode = owl_does_defend(dragon[your_dragon].owl_attack_point,
+                                 my_dragon);
+      if (dcode != 0) {
+       add_owl_defense_move(dragon[your_dragon].owl_attack_point, my_dragon,
+                            dcode);
+       DEBUG(DEBUG_SEMEAI, "added owl defense of %1m at %1m with code %d\n",
+             my_dragon, dragon[your_dragon].owl_attack_point, dcode);
+       if (dragon[my_dragon].owl_status == DEAD) {
+         for (m = 0; m < board_size; m++)
+           for (n = 0; n < board_size; n++) {
+             int pos = POS(m, n);
+             if (board[pos] == board[my_dragon]
+                 && is_same_dragon(pos, my_dragon)) {
+               dragon[pos].owl_status = CRITICAL;
+               dragon[pos].matcher_status = CRITICAL;
+             }
            }
-         }
-       DEBUG(DEBUG_SEMEAI,
-             "changed owl_status and matcher_status of %1m to CRITICAL\n",
-             my_dragon);
+         DEBUG(DEBUG_SEMEAI,
+               "changed owl_status and matcher_status of %1m to CRITICAL\n",
+               my_dragon);
+       }
+       owl_code_sufficient = 1;
       }
-      owl_code_sufficient = 1;
     }
   }
 



reply via email to

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