]> git.cameronkatri.com Git - bsdgames-darwin.git/blobdiff - gomoku/gomoku.h
Fix merge conflicts
[bsdgames-darwin.git] / gomoku / gomoku.h
index e7c4ed558ec9181ecdbd630ce8634429227a375f..d7ff3fbd0bc8ef331bc7dcc7cc39f18907838b69 100644 (file)
@@ -1,5 +1,5 @@
-/* $NetBSD: gomoku.h,v 1.2 1996/12/28 18:57:01 tls Exp $
-*/
+/*     $NetBSD: gomoku.h,v 1.20 2014/03/22 18:58:57 dholland Exp $     */
+
 /*
  * Copyright (c) 1994
  *     The Regents of the University of California.  All rights reserved.
  * 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.
  *
  */
 
 #include <sys/types.h>
+#include <sys/_endian.h>
+#include <stdio.h>
 
 /* board dimensions */
 #define BSZ    19
 #define BSZ1   (BSZ+1)
 #define BSZ2   (BSZ+2)
+#define BSZ3   (BSZ+3)
+#define BSZ4   (BSZ+4)
 #define BAREA  (BSZ2*BSZ1+1)
 
-/* frame dimentions (based on 5 in a row) */
+#define TRANSCRIPT_COL 46      /* necessarily == 2*BSZ4 */
+
+/* interactive curses stuff */
+#define BGOTO(y,x)     move(BSZ - (y), 2 * (x) + 3)
+
+/* frame dimensions (based on 5 in a row) */
 #define FSZ1   BSZ
 #define FSZ2   (BSZ-4)
 #define FAREA  (FSZ1*FSZ2 + FSZ2*FSZ2 + FSZ1*FSZ2 + FSZ2*FSZ2)
@@ -177,7 +182,7 @@ struct combostr {
        u_short         c_vertex;       /* C:intersection or F:frame head */
        u_char          c_nframes;      /* number of frames in the combo */
        u_char          c_dir;          /* C:loop frame or F:frame direction */
-       u_char          c_flg;          /* C:combo flags */
+       u_char          c_flags;        /* C:combo flags */
        u_char          c_frameindex;   /* C:intersection frame index */
        u_char          c_framecnt[2];  /* number of frames left to attach */
        u_char          c_emask[2];     /* C:bit mask of completion spots for
@@ -185,7 +190,7 @@ struct combostr {
        u_char          c_voff[2];      /* C:vertex offset within frame */
 };
 
-/* flag values for c_flg */
+/* flag values for c_flags */
 #define C_OPEN_0       0x01            /* link[0] is an open ended frame */
 #define C_OPEN_1       0x02            /* link[1] is an open ended frame */
 #define C_LOOP         0x04            /* link[1] intersects previous frame */
@@ -213,7 +218,7 @@ struct      elist {
 struct spotstr {
        short           s_occ;          /* color of occupant */
        short           s_wval;         /* weighted value */
-       int             s_flg;          /* flags for graph walks */
+       int             s_flags;        /* flags for graph walks */
        struct combostr *s_frame[4];    /* level 1 combo for frame[dir] */
        union comboval  s_fval[2][4];   /* combo value for [color][frame] */
        union comboval  s_combo[2];     /* minimum combo value for BLK & WHT */
@@ -224,7 +229,7 @@ struct      spotstr {
        int             dummy[2];       /* XXX */
 };
 
-/* flag values for s_flg */
+/* flag values for s_flags */
 #define CFLAG          0x000001        /* frame is part of a combo */
 #define CFLAGALL       0x00000F        /* all frame directions marked */
 #define IFLAG          0x000010        /* legal intersection point */
@@ -239,7 +244,7 @@ struct      spotstr {
 /*
  * This structure is used to store overlap information between frames.
  */
-struct ovlp_info {
+struct overlap_info {
        int             o_intersect;    /* intersection spot */
        struct combostr *o_fcombo;      /* the connecting combo */
        u_char          o_link;         /* which link to update (0 or 1) */
@@ -247,11 +252,10 @@ struct    ovlp_info {
        u_char          o_frameindex;   /* intersection frame index */
 };
 
-extern char    *letters;
-extern char    fmtbuf[];
-extern char    pdir[];
+extern const char      *letters;
+extern const char      pdir[];
 
-extern int     dd[4];
+extern const int     dd[4];
 extern struct  spotstr board[BAREA];           /* info for board */
 extern struct  combostr frames[FAREA];         /* storage for single frames */
 extern struct  combostr *sortframes[2];        /* sorted, non-empty frames */
@@ -261,8 +265,30 @@ extern     int     movelog[BSZ * BSZ];             /* history of moves */
 extern int     movenum;
 extern int     debug;
 
-extern char    *copy();
-extern char    *stoc();
-extern char    *tail();
+extern int interactive;
+extern const char *plyr[];
 
 #define ASSERT(x)
+
+void   bdinit(struct spotstr *);
+int    get_coord(void);
+int    get_key(const char *allowedkeys);
+int    get_line(char *, int);
+void   ask(const char *);
+void   dislog(const char *);
+void   bdump(FILE *);
+void   bdisp(void);
+void   bdisp_init(void);
+void   cursfini(void);
+void   cursinit(void);
+void   bdwho(int);
+void   panic(const char *, ...) __printflike(1, 2) __dead;
+void   debuglog(const char *, ...) __printflike(1, 2);
+void   whatsup(int);
+const char   *stoc(int);
+int    ctos(const char *);
+int    makemove(int, int);
+int    list_eq(struct combostr **, struct combostr **, int);
+void   clearcombo(struct combostr *, int);
+void   markcombo(struct combostr *);
+int    pickmove(int);