gnugo-devel
[Top][All Lists]
Advanced

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

[gnugo-devel] testing the 1-D boardcode: BOARD_OFFSET


From: Teun Burgers
Subject: [gnugo-devel] testing the 1-D boardcode: BOARD_OFFSET
Date: Sun, 28 Apr 2002 15:28:27 +0200

If all goes well, the 1-D board should be handled through
the macros in liberty.h only. The idea behind this patch
is that handling of the 1-D board can be tested by
introducing a BOARD_OFFSET in liberty.h. BOARD_OFFSET=0
gives the standard situation. BOARD_OFFSET>0 can be
used for testing.

Currently Gnu Go crashes in the first reading test when
BOARD_OFFSET = 1.

- introduce BOARD_OFFSET in liberty.h

Teun
Index: liberty.h
===================================================================
RCS file: /cvsroot/gnugo/gnugo/engine/liberty.h,v
retrieving revision 1.96
diff -u -r1.96 liberty.h
--- liberty.h   12 Apr 2002 14:23:54 -0000      1.96
+++ liberty.h   28 Apr 2002 13:22:37 -0000
@@ -85,14 +85,35 @@
  * Note that POS(-1, -1) == 0
  * DELTA() is defined so that POS(i+di, j+dj) = POS(i, j) + DELTA(di, dj).
  */
+#define BOARD_OFFSET 0
+#if (BOARD_OFFSET == 0)
+
+/* the default: BOARD_OFFSET = 0 */
+
 #define BOARDSIZE     ((MAX_BOARD + 2) * (MAX_BOARD + 1) + 1)
 #define BOARDMIN      (MAX_BOARD + 2)
 #define BOARDMAX      (MAX_BOARD + 1) * (MAX_BOARD + 1)
 #define POS(i, j)     ((MAX_BOARD + 2) + (i) * (MAX_BOARD + 1) + (j))
-#define DELTA(di, dj) ((di) * (MAX_BOARD + 1) + (dj))
 #define I(pos)        ((pos) / (MAX_BOARD + 1) - 1)
 #define J(pos)        ((pos) % (MAX_BOARD + 1) - 1)
 #define PASS_MOVE     0
+
+#else
+
+/* for testing the 1_D board: BOARD_OFFSET > 0 */
+
+#define BOARDSIZE     ((MAX_BOARD + 2) * (MAX_BOARD + 1) + 1 + BOARD_OFFSET)
+#define BOARDMIN      (MAX_BOARD + 2 + BOARD_OFFSET)
+#define BOARDMAX      ((MAX_BOARD + 1) * (MAX_BOARD + 1) + BOARD_OFFSET)
+#define POS(i, j)     ((MAX_BOARD + 2) + (i) * (MAX_BOARD + 1) + (j) + \
+                                                       BOARD_OFFSET)
+#define I(pos)        (((pos) - BOARD_OFFSET) / (MAX_BOARD + 1) - 1)
+#define J(pos)        (((pos) - BOARD_OFFSET) % (MAX_BOARD + 1) - 1)
+#define PASS_MOVE     BOARD_OFFSET
+
+#endif
+
+#define DELTA(di, dj) ((di) * (MAX_BOARD + 1) + (dj))
 #define NO_MOVE       PASS_MOVE
 #define NS            (MAX_BOARD + 1)
 #define WE            1

reply via email to

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