[Top][All Lists]
[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;