Module Name: src
Committed By: rillig
Date: Sun May 29 00:12:11 UTC 2022
Modified Files:
src/games/gomoku: bdinit.c bdisp.c gomoku.h main.c pickmove.c stoc.c
Log Message:
gomoku: use consistent variable names
Previously, the name 's' was used for the index of a spot on the board,
as well as for the value of a combo, and for a few other purposes. Use
different names and mark the spot indexes using a custom type.
No binary change.
To generate a diff of this commit:
cvs rdiff -u -r1.27 -r1.28 src/games/gomoku/bdinit.c
cvs rdiff -u -r1.50 -r1.51 src/games/gomoku/bdisp.c
cvs rdiff -u -r1.46 -r1.47 src/games/gomoku/gomoku.h
cvs rdiff -u -r1.66 -r1.67 src/games/gomoku/main.c
cvs rdiff -u -r1.48 -r1.49 src/games/gomoku/pickmove.c
cvs rdiff -u -r1.20 -r1.21 src/games/gomoku/stoc.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/games/gomoku/bdinit.c
diff -u src/games/gomoku/bdinit.c:1.27 src/games/gomoku/bdinit.c:1.28
--- src/games/gomoku/bdinit.c:1.27 Sat May 28 19:47:24 2022
+++ src/games/gomoku/bdinit.c Sun May 29 00:12:11 2022
@@ -1,4 +1,4 @@
-/* $NetBSD: bdinit.c,v 1.27 2022/05/28 19:47:24 rillig Exp $ */
+/* $NetBSD: bdinit.c,v 1.28 2022/05/29 00:12:11 rillig Exp $ */
/*
* Copyright (c) 1994
@@ -34,7 +34,7 @@
#include <sys/cdefs.h>
/* from: @(#)bdinit.c 8.2 (Berkeley) 5/3/95 */
-__RCSID("$NetBSD: bdinit.c,v 1.27 2022/05/28 19:47:24 rillig Exp $");
+__RCSID("$NetBSD: bdinit.c,v 1.28 2022/05/29 00:12:11 rillig Exp $");
#include <string.h>
#include "gomoku.h"
@@ -233,7 +233,7 @@ adjust_overlap(u_char ov, int ra, int si
* each frame B that overlaps frame A in that spot.
*/
static void
-init_overlap_frame(int fia, int ra, int sia, int s, int mask)
+init_overlap_frame(int fia, int ra, int sia, spot_index s, int mask)
{
for (int rb = 4; --rb >= 0;) {
@@ -264,7 +264,7 @@ init_overlap(void)
for (int fia = FAREA; fia-- > 0;) {
const struct combostr *fa = &frames[fia];
- int s = fa->c_vertex;
+ spot_index s = fa->c_vertex;
u_char ra = fa->c_dir;
int da = dd[ra];
Index: src/games/gomoku/bdisp.c
diff -u src/games/gomoku/bdisp.c:1.50 src/games/gomoku/bdisp.c:1.51
--- src/games/gomoku/bdisp.c:1.50 Sat May 28 20:54:31 2022
+++ src/games/gomoku/bdisp.c Sun May 29 00:12:11 2022
@@ -1,4 +1,4 @@
-/* $NetBSD: bdisp.c,v 1.50 2022/05/28 20:54:31 rillig Exp $ */
+/* $NetBSD: bdisp.c,v 1.51 2022/05/29 00:12:11 rillig Exp $ */
/*
* Copyright (c) 1994
@@ -34,7 +34,7 @@
#include <sys/cdefs.h>
/* @(#)bdisp.c 8.2 (Berkeley) 5/3/95 */
-__RCSID("$NetBSD: bdisp.c,v 1.50 2022/05/28 20:54:31 rillig Exp $");
+__RCSID("$NetBSD: bdisp.c,v 1.51 2022/05/29 00:12:11 rillig Exp $");
#include <curses.h>
#include <string.h>
@@ -149,7 +149,7 @@ bdwho(void)
}
static bool
-should_highlight(int s)
+should_highlight(spot_index s)
{
if (game.nmoves > 0 && game.moves[game.nmoves - 1] == s)
Index: src/games/gomoku/gomoku.h
diff -u src/games/gomoku/gomoku.h:1.46 src/games/gomoku/gomoku.h:1.47
--- src/games/gomoku/gomoku.h:1.46 Sat May 28 23:05:45 2022
+++ src/games/gomoku/gomoku.h Sun May 29 00:12:11 2022
@@ -1,4 +1,4 @@
-/* $NetBSD: gomoku.h,v 1.46 2022/05/28 23:05:45 rillig Exp $ */
+/* $NetBSD: gomoku.h,v 1.47 2022/05/29 00:12:11 rillig Exp $ */
/*
* Copyright (c) 1994
@@ -60,6 +60,7 @@
#define BORDER 3
/* return values for makemove, readinput */
+typedef int spot_index;
#define MOVEOK 0
#define RESIGN 1
#define ILLEGAL 2
@@ -217,9 +218,9 @@ struct spotstr {
#define BFLAGALL 0x0F0000 /* all frames dead */
struct game {
- int moves[BSZ * BSZ]; /* log of all played moves */
+ spot_index moves[BSZ * BSZ]; /* log of all played moves */
unsigned int nmoves; /* number of played moves */
- int winning_spot;
+ spot_index winning_spot;
int winning_dir;
};
@@ -253,8 +254,8 @@ void bdwho(void);
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 *);
+const char *stoc(spot_index);
+spot_index ctos(const char *);
int makemove(int, int);
void clearcombo(struct combostr *, int);
void markcombo(struct combostr *);
Index: src/games/gomoku/main.c
diff -u src/games/gomoku/main.c:1.66 src/games/gomoku/main.c:1.67
--- src/games/gomoku/main.c:1.66 Sat May 28 23:05:45 2022
+++ src/games/gomoku/main.c Sun May 29 00:12:11 2022
@@ -1,4 +1,4 @@
-/* $NetBSD: main.c,v 1.66 2022/05/28 23:05:45 rillig Exp $ */
+/* $NetBSD: main.c,v 1.67 2022/05/29 00:12:11 rillig Exp $ */
/*
* Copyright (c) 1994
@@ -36,7 +36,7 @@
__COPYRIGHT("@(#) Copyright (c) 1994\
The Regents of the University of California. All rights reserved.");
/* @(#)main.c 8.4 (Berkeley) 5/4/95 */
-__RCSID("$NetBSD: main.c,v 1.66 2022/05/28 23:05:45 rillig Exp $");
+__RCSID("$NetBSD: main.c,v 1.67 2022/05/29 00:12:11 rillig Exp $");
#include <sys/stat.h>
#include <curses.h>
@@ -222,13 +222,13 @@ read_color(void)
/* NOTREACHED */
}
-static int
+static spot_index
read_move(void)
{
again:
if (interactive) {
ask("Select move, (S)ave or (Q)uit.");
- int s = get_coord();
+ spot_index s = get_coord();
if (s == SAVE) {
save_game();
goto again;
Index: src/games/gomoku/pickmove.c
diff -u src/games/gomoku/pickmove.c:1.48 src/games/gomoku/pickmove.c:1.49
--- src/games/gomoku/pickmove.c:1.48 Sat May 28 21:48:21 2022
+++ src/games/gomoku/pickmove.c Sun May 29 00:12:11 2022
@@ -1,4 +1,4 @@
-/* $NetBSD: pickmove.c,v 1.48 2022/05/28 21:48:21 rillig Exp $ */
+/* $NetBSD: pickmove.c,v 1.49 2022/05/29 00:12:11 rillig Exp $ */
/*
* Copyright (c) 1994
@@ -34,7 +34,7 @@
#include <sys/cdefs.h>
/* @(#)pickmove.c 8.2 (Berkeley) 5/3/95 */
-__RCSID("$NetBSD: pickmove.c,v 1.48 2022/05/28 21:48:21 rillig Exp $");
+__RCSID("$NetBSD: pickmove.c,v 1.49 2022/05/29 00:12:11 rillig Exp $");
#include <stdlib.h>
#include <string.h>
@@ -198,8 +198,8 @@ better(const struct spotstr *sp, const s
return sp->s_nforce[us] > sp1->s_nforce[us];
int them = us != BLACK ? BLACK : WHITE;
- int s = (int)(sp - board);
- int s1 = (int)(sp1 - board);
+ spot_index s = (spot_index)(sp - board);
+ spot_index s1 = (spot_index)(sp1 - board);
if (BIT_TEST(forcemap, s) != BIT_TEST(forcemap, s1))
return BIT_TEST(forcemap, s);
@@ -411,10 +411,10 @@ scanframes(int color)
/*
* Compute all level 2 combos of frames intersecting spot 'osp'
- * within the frame 'ocbp' and combo value 's'.
+ * within the frame 'ocbp' and combo value 'cv'.
*/
static void
-makecombo2(struct combostr *ocbp, struct spotstr *osp, int off, int s)
+makecombo2(struct combostr *ocbp, struct spotstr *osp, int off, int cv)
{
struct combostr *ncbp;
int c;
@@ -424,7 +424,7 @@ makecombo2(struct combostr *ocbp, struct
char tmp[128];
/* try to combine a new frame with those found so far */
- ocb.s = s;
+ ocb.s = cv;
baseB = ocb.cv_force + ocb.cv_win - 1;
fcnt = ocb.cv_force - 2;
emask = fcnt != 0 ? ((ocb.cv_win != 0 ? 0x1E : 0x1F) & ~(1 << off)) : 0;
@@ -641,10 +641,10 @@ addframes(unsigned int level)
/*
* Compute all level N combos of frames intersecting spot 'osp'
- * within the frame 'ocbp' and combo value 's'.
+ * within the frame 'ocbp' and combo value 'cv'.
*/
static void
-makecombo(struct combostr *ocbp, struct spotstr *osp, int off, int s)
+makecombo(struct combostr *ocbp, struct spotstr *osp, int off, int cv)
{
struct combostr *cbp;
struct spotstr *sp;
@@ -663,14 +663,14 @@ makecombo(struct combostr *ocbp, struct
*/
memset(vertices, 0, sizeof(vertices));
- ocb.s = s;
+ ocb.s = cv;
baseB = ocb.cv_force + ocb.cv_win - 1;
fcnt = ocb.cv_force - 2;
emask = fcnt != 0 ? ((ocb.cv_win != 0 ? 0x1E : 0x1F) & ~(1 << off)) : 0;
for (struct elist *ep = osp->s_empty; ep != NULL; ep = ep->e_next) {
/* check for various kinds of overlap */
cbp = ep->e_combo;
- verts = checkframes(cbp, ocbp, osp, s, vertices);
+ verts = checkframes(cbp, ocbp, osp, cv, vertices);
if (verts < 0)
continue;
@@ -802,7 +802,7 @@ makeempty(struct combostr *ocbp)
struct combostr *cbp, **cbpp;
struct elist *ep, *nep;
struct spotstr *sp;
- int s, d, m, emask, i;
+ int d, emask, i;
int nframes;
char tmp[128];
@@ -849,7 +849,7 @@ makeempty(struct combostr *ocbp)
ep->e_emask = cbp->c_emask[0];
/* now update the emask info */
- s = 0;
+ int n = 0;
for (i = 2, ep += 2; i < nframes; i++, ep++) {
cbp = ep->e_combo;
nep = &einfo[ep->e_frameindex];
@@ -857,7 +857,7 @@ makeempty(struct combostr *ocbp)
nep->e_emask = cbp->c_emask[0];
if ((cbp->c_flags & C_LOOP) != 0) {
- s++;
+ n++;
/*
* Account for the fact that this frame connects
* to a previous one (thus forming a loop).
@@ -874,7 +874,7 @@ makeempty(struct combostr *ocbp)
* We only need to update the emask values of "complete" loops
* to include the intersection spots.
*/
- if (s != 0 && ocbp->c_combo.cv_force == 2) {
+ if (n != 0 && ocbp->c_combo.cv_force == 2) {
/* process loops from the top down */
ep = &einfo[nframes];
do {
@@ -909,7 +909,7 @@ makeempty(struct combostr *ocbp)
cbp = *cbpp;
sp = &board[cbp->c_vertex];
d = dd[cbp->c_dir];
- for (s = 0, m = 1; s < 5; s++, sp += d, m <<= 1) {
+ for (int off = 0, m = 1; off < 5; off++, sp += d, m <<= 1) {
if (sp->s_occ != EMPTY || (emask & m) == 0)
continue;
@@ -918,7 +918,7 @@ makeempty(struct combostr *ocbp)
if (nep == NULL)
panic("Out of memory!");
nep->e_combo = ocbp;
- nep->e_off = s;
+ nep->e_off = off;
nep->e_frameindex = i;
if (ep->e_framecnt > 1) {
nep->e_framecnt = ep->e_framecnt - 1;
@@ -983,7 +983,7 @@ updatecombo(struct combostr *cbp, int co
}
} else {
/* update the board values for each spot in frame */
- int s = tcbp->c_vertex;
+ spot_index s = tcbp->c_vertex;
struct spotstr *sp = &board[s];
int d = dd[tcbp->c_dir];
int i = (flags & C_OPEN_1) != 0 ? 6 : 5;
@@ -1008,7 +1008,7 @@ updatecombo(struct combostr *cbp, int co
if (color != nextcolor) {
/* update the board values for each spot in frame */
- int s = cbp->c_vertex;
+ spot_index s = cbp->c_vertex;
struct spotstr *sp = &board[s];
int d = dd[cbp->c_dir];
int i = (flags & C_OPEN_0) != 0 ? 6 : 5;
@@ -1068,11 +1068,11 @@ appendcombo(struct combostr *cbp, int co
* would form some kind of valid loop. Also return the intersection spots
* in 'vertices[]' beside the known intersection at spot 'osp'.
* Return -1 if 'fcbp' should not be combined with 'cbp'.
- * 's' is the combo value for frame 'fcpb'.
+ * 'cv' is the combo value for frame 'fcbp'.
*/
static int
checkframes(struct combostr *cbp, struct combostr *fcbp, struct spotstr *osp,
- int s, struct overlap_info *vertices)
+ int cv, struct overlap_info *vertices)
{
struct combostr *tcbp, *lcbp;
int i, n, mask, flags, verts, myindex, fcnt;
@@ -1083,7 +1083,7 @@ checkframes(struct combostr *cbp, struct
lcbp = NULL;
flags = 0;
- cb.s = s;
+ cb.s = cv;
fcnt = cb.cv_force - 2;
verts = 0;
myindex = cbp->c_nframes;
@@ -1346,7 +1346,7 @@ markcombo(struct combostr *ocbp)
struct combostr *cbp, **cbpp;
struct elist *ep, *nep;
struct spotstr *sp;
- int s, d, m, i;
+ int d, m, i;
int nframes;
int cmask, omask;
@@ -1388,7 +1388,7 @@ markcombo(struct combostr *ocbp)
ep->e_emask = cbp->c_emask[0];
/* now update the emask info */
- s = 0;
+ int n = 0;
for (i = 2, ep += 2; i < nframes; i++, ep++) {
cbp = ep->e_combo;
nep = &einfo[ep->e_frameindex];
@@ -1396,7 +1396,7 @@ markcombo(struct combostr *ocbp)
nep->e_emask = cbp->c_emask[0];
if ((cbp->c_flags & C_LOOP) != 0) {
- s++;
+ n++;
/*
* Account for the fact that this frame connects
* to a previous one (thus forming a loop).
@@ -1413,7 +1413,7 @@ markcombo(struct combostr *ocbp)
* We only need to update the emask values of "complete" loops
* to include the intersection spots.
*/
- if (s != 0 && ocbp->c_combo.cv_force == 2) {
+ if (n != 0 && ocbp->c_combo.cv_force == 2) {
/* process loops from the top down */
ep = &einfo[nframes];
do {
@@ -1445,12 +1445,12 @@ markcombo(struct combostr *ocbp)
m = ep->e_emask;
cbp = *cbpp;
sp = &board[cbp->c_vertex];
- d = dd[s = cbp->c_dir];
- cmask = CFLAG << s;
- omask = (IFLAG | CFLAG) << s;
- s = ep->e_fval.cv_win != 0 ? 6 : 5;
+ d = dd[cbp->c_dir];
+ cmask = CFLAG << cbp->c_dir;
+ omask = (IFLAG | CFLAG) << cbp->c_dir;
+ int off = ep->e_fval.cv_win != 0 ? 6 : 5;
/* LINTED 117: bitwise '>>' on signed value possibly nonportable */
- for (; --s >= 0; sp += d, m >>= 1)
+ for (; --off >= 0; sp += d, m >>= 1)
sp->s_flags |= (m & 1) != 0 ? omask : cmask;
}
}
Index: src/games/gomoku/stoc.c
diff -u src/games/gomoku/stoc.c:1.20 src/games/gomoku/stoc.c:1.21
--- src/games/gomoku/stoc.c:1.20 Sat May 21 19:02:14 2022
+++ src/games/gomoku/stoc.c Sun May 29 00:12:11 2022
@@ -1,4 +1,4 @@
-/* $NetBSD: stoc.c,v 1.20 2022/05/21 19:02:14 rillig Exp $ */
+/* $NetBSD: stoc.c,v 1.21 2022/05/29 00:12:11 rillig Exp $ */
/*
* Copyright (c) 1994
@@ -34,7 +34,7 @@
#include <sys/cdefs.h>
/* @(#)stoc.c 8.1 (Berkeley) 7/24/94 */
-__RCSID("$NetBSD: stoc.c,v 1.20 2022/05/21 19:02:14 rillig Exp $");
+__RCSID("$NetBSD: stoc.c,v 1.21 2022/05/29 00:12:11 rillig Exp $");
#include <ctype.h>
#include <stdlib.h>
@@ -48,7 +48,7 @@ const char letters[] = "<ABCDEFGHJKLMNOP
* Turn the spot number form of a move into the character form.
*/
const char *
-stoc(int s)
+stoc(spot_index s)
{
static char buf[32];
@@ -64,7 +64,7 @@ stoc(int s)
/*
* Turn the character form of a move into the spot number form.
*/
-int
+spot_index
ctos(const char *mp)
{