gnugo-devel
[Top][All Lists]
Advanced

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

Re: [gnugo-devel] dfa bug workaround


From: Teun Burgers
Subject: Re: [gnugo-devel] dfa bug workaround
Date: Thu, 25 Oct 2001 18:31:46 +0200

Daniel Bump wrote:

> If I apply this patch, then mkpat -D -m -b 0 doesn't
> crash on the file bug.db, and I can configure --enable-dfa
> and compile GNU Go. But it does poorly on owl.tst with
> lots of unexpected failures.

This was due to incomplete 1-D conversion of
the goal array. Fixed by the appended patch.

Teun
--- gnugo-3.1.11/engine/matchpat.c      Thu Oct 11 16:33:27 2001
+++ gx3111/engine/matchpat.c    Thu Oct 25 13:14:47 2001
@@ -664,16 +664,16 @@
 static void do_dfa_matchpat(dfa_t *pdfa,
                int m, int n, matchpat_callback_fn_ptr callback,
                int color, struct pattern *database,
-               void *callback_data, char goal[MAX_BOARD][MAX_BOARD]);
+               void *callback_data, char goal[BOARDMAX]);
 static void check_pattern_light (int m, int n, 
                matchpat_callback_fn_ptr callback,
                int color, struct pattern *pattern, int ll,
                void *callback_data,
-               char goal[MAX_BOARD][MAX_BOARD]);
+               char goal[BOARDMAX]);
 static void dfa_matchpat_loop(matchpat_callback_fn_ptr callback, 
                              int color, int anchor,
                              struct pattern_db *pdb, void *callback_data,
-                             char goal[MAX_BOARD][MAX_BOARD]);
+                             char goal[BOARDMAX]);
 
 
 /***********************************************************************/
@@ -845,7 +845,7 @@
 do_dfa_matchpat(dfa_t *pdfa,
                int m, int n, matchpat_callback_fn_ptr callback,
                int color, struct pattern *database,
-               void *callback_data, char goal[MAX_BOARD][MAX_BOARD])
+               void *callback_data, char goal[BOARDMAX])
 {
   int ll;      /* Iterate over transformations (rotations or reflections)  */
   int matched; /* index in database[] of the matched pattern */
@@ -902,7 +902,7 @@
 static void
 check_pattern_light(int m, int n, matchpat_callback_fn_ptr callback, int color,
              struct pattern *pattern, int ll, void *callback_data,
-             char goal[MAX_BOARD][MAX_BOARD])
+             char goal[BOARDMAX])
 {
   int k;                       /* Iterate over elements of pattern */
   int found_goal, found_nongoal;
@@ -931,7 +931,7 @@
 
     /* goal check */
     if (goal != NULL) {
-      if (goal[x][y])
+      if (goal[POS(x,y)])
        found_goal = 1;
       else if (p[x][y] == color)
        found_nongoal = 1;
@@ -983,7 +983,7 @@
 static void
 dfa_matchpat_loop(matchpat_callback_fn_ptr callback, int color, int anchor,
         struct pattern_db *pdb, void *callback_data,
-        char goal[MAX_BOARD][MAX_BOARD]) 
+        char goal[BOARDMAX]) 
 {
   int i,j;
 


reply via email to

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