]> git.cameronkatri.com Git - bsdgames-darwin.git/blobdiff - gomoku/makemove.c
Better user interface. From OpenBSD, written by Paul Janzen quite a
[bsdgames-darwin.git] / gomoku / makemove.c
index ca270068285eeef40113577fafb07df03ed4eae0..28ad355ac0b7901604797eb9cb1420b1d9ed705a 100644 (file)
@@ -1,4 +1,4 @@
-/*     $NetBSD: makemove.c,v 1.4 1997/10/10 13:36:05 lukem Exp $       */
+/*     $NetBSD: makemove.c,v 1.11 2009/08/12 06:19:17 dholland Exp $   */
 
 /*
  * Copyright (c) 1994
  * 2. Redistributions in binary form must reproduce the above copyright
  *    notice, this list of conditions and the following disclaimer in the
  *    documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- *    must display the following acknowledgement:
- *     This product includes software developed by the University of
- *     California, Berkeley and its contributors.
- * 4. Neither the name of the University nor the names of its contributors
+ * 3. Neither the name of the University nor the names of its contributors
  *    may be used to endorse or promote products derived from this software
  *    without specific prior written permission.
  *
 #if 0
 static char sccsid[] = "@(#)makemove.c 8.2 (Berkeley) 5/3/95";
 #else
-__RCSID("$NetBSD: makemove.c,v 1.4 1997/10/10 13:36:05 lukem Exp $");
+__RCSID("$NetBSD: makemove.c,v 1.11 2009/08/12 06:19:17 dholland Exp $");
 #endif
 #endif /* not lint */
 
 #include "gomoku.h"
 
                /* direction deltas */
-int     dd[4] = {
+const int     dd[4] = {
        MRIGHT, MRIGHT+MDOWN, MDOWN, MDOWN+MLEFT
 };
 
-int    weight[5] = { 0, 1, 7, 22, 100 };
+static const int weight[5] = { 0, 1, 7, 22, 100 };
+
+static void update_overlap(struct spotstr *);
 
 /*
  * Return values:
  *     MOVEOK  everything is OK.
  *     RESIGN  Player resigned.
  *     ILLEGAL Illegal move.
- *     WIN     The the winning move was just played.
+ *     WIN     The winning move was just played.
  *     TIE     The game is a tie.
  */
 int
-makemove(us, mv)
-       int us, mv;
+makemove(int us, int mv)
 {
        struct spotstr *sp, *fsp;
        union comboval *cp;
@@ -99,7 +96,7 @@ makemove(us, mv)
            for (f = 5; --f >= 0; fsp -= d) {           /* for each frame */
                if (fsp->s_occ == BORDER)
                    goto nextr;
-               if (fsp->s_flg & bmask)
+               if (fsp->s_flags & bmask)
                    continue;
 
                /* remove this frame from the sorted list of frames */
@@ -134,7 +131,7 @@ makemove(us, mv)
                        sp->s_wval -= val;
                    else {
                        /* this frame is now blocked, adjust values */
-                       fsp->s_flg |= bmask;
+                       fsp->s_flags |= bmask;
                        fsp->s_fval[BLACK][r].s = MAXCOMBO;
                        fsp->s_fval[WHITE][r].s = MAXCOMBO;
                        while (--i >= 0) {
@@ -220,15 +217,14 @@ makemove(us, mv)
 /*
  * fix up the overlap array due to updating spot osp.
  */
-void
-update_overlap(osp)
-       struct spotstr *osp;
+static void
+update_overlap(struct spotstr *osp)
 {
        struct spotstr *sp, *sp1, *sp2;
        int i, f, r, r1, d, d1, n;
        int a, b, bmask, bmask1;
        struct spotstr *esp;
-       char *str;
+       u_char *str;
 
        esp = NULL;
        for (r = 4; --r >= 0; ) {                       /* for each direction */
@@ -238,7 +234,7 @@ update_overlap(osp)
            for (f = 0; f < 6; f++, sp1 -= d) {         /* for each frame */
                if (sp1->s_occ == BORDER)
                    break;
-               if (sp1->s_flg & bmask)
+               if (sp1->s_flags & bmask)
                    continue;
                /*
                 * Update all other frames that intersect the current one
@@ -252,7 +248,7 @@ update_overlap(osp)
                for (i = f + 1; i < 6; i++, sp2 -= d) {
                    if (sp2->s_occ == BORDER)
                        break;
-                   if (sp2->s_flg & bmask)
+                   if (sp2->s_flags & bmask)
                        continue;
                    /*
                     * count the number of empty spots to see if there is
@@ -299,7 +295,7 @@ update_overlap(osp)
                    for (i = 6; --i >= 0; sp -= d1) {   /* for each spot */
                        if (sp->s_occ == BORDER)
                            break;
-                       if (sp->s_flg & bmask1)
+                       if (sp->s_flags & bmask1)
                            continue;
                        b = sp->s_frame[r1] - frames;
                        str[b] = 0;