Module Name:    src
Committed By:   rillig
Date:           Sat May 28 08:19:19 UTC 2022

Modified Files:
        src/games/gomoku: bdinit.c bdisp.c gomoku.h main.c makemove.c
            pickmove.c

Log Message:
gomoku: group movelog and nmoves into a game struct

No functional change.


To generate a diff of this commit:
cvs rdiff -u -r1.22 -r1.23 src/games/gomoku/bdinit.c
cvs rdiff -u -r1.47 -r1.48 src/games/gomoku/bdisp.c
cvs rdiff -u -r1.42 -r1.43 src/games/gomoku/gomoku.h
cvs rdiff -u -r1.60 -r1.61 src/games/gomoku/main.c
cvs rdiff -u -r1.31 -r1.32 src/games/gomoku/makemove.c
cvs rdiff -u -r1.46 -r1.47 src/games/gomoku/pickmove.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.22 src/games/gomoku/bdinit.c:1.23
--- src/games/gomoku/bdinit.c:1.22	Fri May 27 19:59:56 2022
+++ src/games/gomoku/bdinit.c	Sat May 28 08:19:18 2022
@@ -1,4 +1,4 @@
-/*	$NetBSD: bdinit.c,v 1.22 2022/05/27 19:59:56 rillig Exp $	*/
+/*	$NetBSD: bdinit.c,v 1.23 2022/05/28 08:19:18 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.22 2022/05/27 19:59:56 rillig Exp $");
+__RCSID("$NetBSD: bdinit.c,v 1.23 2022/05/28 08:19:18 rillig Exp $");
 
 #include <string.h>
 #include "gomoku.h"
@@ -47,7 +47,7 @@ bdinit(struct spotstr *bp)
 	struct spotstr *sp;
 	struct combostr *cbp;
 
-	nmoves = 0;
+	game.nmoves = 0;
 
 	/* mark the borders as such */
 	sp = bp;

Index: src/games/gomoku/bdisp.c
diff -u src/games/gomoku/bdisp.c:1.47 src/games/gomoku/bdisp.c:1.48
--- src/games/gomoku/bdisp.c:1.47	Fri May 27 19:59:56 2022
+++ src/games/gomoku/bdisp.c	Sat May 28 08:19:18 2022
@@ -1,4 +1,4 @@
-/*	$NetBSD: bdisp.c,v 1.47 2022/05/27 19:59:56 rillig Exp $	*/
+/*	$NetBSD: bdisp.c,v 1.48 2022/05/28 08:19:18 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.47 2022/05/27 19:59:56 rillig Exp $");
+__RCSID("$NetBSD: bdisp.c,v 1.48 2022/05/28 08:19:18 rillig Exp $");
 
 #include <curses.h>
 #include <string.h>
@@ -171,7 +171,8 @@ bdisp(void)
 				c = pcolor[sp->s_occ];
 
 			move(scr_y(j), scr_x(i));
-			if (nmoves > 0 && movelog[nmoves - 1] == PT(i, j)) {
+			if (game.nmoves > 0 &&
+			    game.moves[game.nmoves - 1] == PT(i, j)) {
 				attron(A_BOLD);
 				addch(c);
 				attroff(A_BOLD);

Index: src/games/gomoku/gomoku.h
diff -u src/games/gomoku/gomoku.h:1.42 src/games/gomoku/gomoku.h:1.43
--- src/games/gomoku/gomoku.h:1.42	Sat May 28 06:25:35 2022
+++ src/games/gomoku/gomoku.h	Sat May 28 08:19:18 2022
@@ -1,4 +1,4 @@
-/*	$NetBSD: gomoku.h,v 1.42 2022/05/28 06:25:35 rillig Exp $	*/
+/*	$NetBSD: gomoku.h,v 1.43 2022/05/28 08:19:18 rillig Exp $	*/
 
 /*
  * Copyright (c) 1994
@@ -215,6 +215,11 @@ struct	spotstr {
 #define BFLAG		0x010000	/* frame intersects border or dead */
 #define BFLAGALL	0x0F0000	/* all frames dead */
 
+struct game {
+	int moves[BSZ * BSZ];		/* log of all played moves */
+	unsigned int nmoves;		/* number of played moves */
+};
+
 extern	const char	letters[];
 extern	const char	pdir[];
 
@@ -224,8 +229,7 @@ extern	struct	combostr frames[FAREA];		/
 extern	struct	combostr *sortframes[2];	/* sorted, non-empty frames */
 extern	u_char	overlap[FAREA * FAREA];
 extern	short	intersect[FAREA * FAREA];	/* frame [a][b] intersection */
-extern	int	movelog[BSZ * BSZ];
-extern	unsigned int nmoves;
+extern	struct game	game;
 extern	int	debug;
 
 extern bool interactive;

Index: src/games/gomoku/main.c
diff -u src/games/gomoku/main.c:1.60 src/games/gomoku/main.c:1.61
--- src/games/gomoku/main.c:1.60	Sat May 28 06:25:35 2022
+++ src/games/gomoku/main.c	Sat May 28 08:19:18 2022
@@ -1,4 +1,4 @@
-/*	$NetBSD: main.c,v 1.60 2022/05/28 06:25:35 rillig Exp $	*/
+/*	$NetBSD: main.c,v 1.61 2022/05/28 08:19:18 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.60 2022/05/28 06:25:35 rillig Exp $");
+__RCSID("$NetBSD: main.c,v 1.61 2022/05/28 08:19:18 rillig Exp $");
 
 #include <sys/stat.h>
 #include <curses.h>
@@ -79,8 +79,7 @@ struct	combostr *sortframes[2];	/* sorte
 u_char	overlap[FAREA * FAREA];		/* non-zero if frame [a][b] overlap;
 					 * see init_overlap */
 short	intersect[FAREA * FAREA];	/* frame [a][b] intersection */
-int	movelog[BSZ * BSZ];		/* log of all played moves */
-unsigned int nmoves;			/* number of played moves */
+struct game game;
 const char *plyr[2] = { "???", "???" };	/* who's who */
 
 static int readinput(FILE *);
@@ -116,8 +115,8 @@ save_game(void)
 		misclog("cannot create save file");
 		return;
 	}
-	for (unsigned int i = 0; i < nmoves; i++)
-		fprintf(fp, "%s\n", stoc(movelog[i]));
+	for (unsigned int i = 0; i < game.nmoves; i++)
+		fprintf(fp, "%s\n", stoc(game.moves[i]));
 	fclose(fp);
 }
 
@@ -313,7 +312,8 @@ again:
 
 	if (interactive && curmove != ILLEGAL) {
 		misclog("%3u%*s%-6s",
-		    nmoves + 1, color == BLACK ? 2 : 9, "", stoc(curmove));
+		    game.nmoves + 1, color == BLACK ? 2 : 9, "",
+		    stoc(curmove));
 	}
 
 	if ((outcome = makemove(color, curmove)) != MOVEOK)
@@ -448,9 +448,9 @@ top:
 	case 'c':
 		break;
 	case 'b':		/* back up a move */
-		if (nmoves > 0) {
-			nmoves--;
-			board[movelog[nmoves]].s_occ = EMPTY;
+		if (game.nmoves > 0) {
+			game.nmoves--;
+			board[game.moves[game.nmoves]].s_occ = EMPTY;
 			bdisp();
 		}
 		goto top;
@@ -460,23 +460,23 @@ top:
 			stoc(pickmove(i)));
 		goto top;
 	case 'f':		/* go forward a move */
-		board[movelog[nmoves]].s_occ =
-		    nmoves % 2 == 0 ? BLACK : WHITE;
-		nmoves++;
+		board[game.moves[game.nmoves]].s_occ =
+		    game.nmoves % 2 == 0 ? BLACK : WHITE;
+		game.nmoves++;
 		bdisp();
 		goto top;
 	case 'l':		/* print move history */
 		if (input[1] == '\0') {
-			for (unsigned int m = 0; m < nmoves; m++)
-				debuglog("%s", stoc(movelog[m]));
+			for (unsigned int m = 0; m < game.nmoves; m++)
+				debuglog("%s", stoc(game.moves[m]));
 			goto top;
 		}
 		if ((fp = fopen(input + 1, "w")) == NULL)
 			goto top;
-		for (unsigned int m = 0; m < nmoves; m++) {
-			fprintf(fp, "%s", stoc(movelog[m]));
-			if (++m < nmoves)
-				fprintf(fp, " %s\n", stoc(movelog[m]));
+		for (unsigned int m = 0; m < game.nmoves; m++) {
+			fprintf(fp, "%s", stoc(game.moves[m]));
+			if (++m < game.nmoves)
+				fprintf(fp, " %s\n", stoc(game.moves[m]));
 			else
 				fputc('\n', fp);
 		}

Index: src/games/gomoku/makemove.c
diff -u src/games/gomoku/makemove.c:1.31 src/games/gomoku/makemove.c:1.32
--- src/games/gomoku/makemove.c:1.31	Sat May 28 08:09:22 2022
+++ src/games/gomoku/makemove.c	Sat May 28 08:19:18 2022
@@ -1,4 +1,4 @@
-/*	$NetBSD: makemove.c,v 1.31 2022/05/28 08:09:22 rillig Exp $	*/
+/*	$NetBSD: makemove.c,v 1.32 2022/05/28 08:19:18 rillig Exp $	*/
 
 /*
  * Copyright (c) 1994
@@ -34,7 +34,7 @@
 
 #include <sys/cdefs.h>
 /*	@(#)makemove.c	8.2 (Berkeley) 5/3/95	*/
-__RCSID("$NetBSD: makemove.c,v 1.31 2022/05/28 08:09:22 rillig Exp $");
+__RCSID("$NetBSD: makemove.c,v 1.32 2022/05/28 08:19:18 rillig Exp $");
 
 #include "gomoku.h"
 
@@ -111,7 +111,7 @@ makemove(int us, int mv)
 
 	/* make move */
 	sp->s_occ = us;
-	movelog[nmoves++] = mv;
+	game.moves[game.nmoves++] = mv;
 
 	/* compute new frame values */
 	sp->s_wval = 0;

Index: src/games/gomoku/pickmove.c
diff -u src/games/gomoku/pickmove.c:1.46 src/games/gomoku/pickmove.c:1.47
--- src/games/gomoku/pickmove.c:1.46	Fri May 27 23:10:54 2022
+++ src/games/gomoku/pickmove.c	Sat May 28 08:19:18 2022
@@ -1,4 +1,4 @@
-/*	$NetBSD: pickmove.c,v 1.46 2022/05/27 23:10:54 rillig Exp $	*/
+/*	$NetBSD: pickmove.c,v 1.47 2022/05/28 08:19:18 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.46 2022/05/27 23:10:54 rillig Exp $");
+__RCSID("$NetBSD: pickmove.c,v 1.47 2022/05/28 08:19:18 rillig Exp $");
 
 #include <stdlib.h>
 #include <string.h>
@@ -89,7 +89,7 @@ pickmove(int us)
 {
 
 	/* first move is easy */
-	if (nmoves == 0)
+	if (game.nmoves == 0)
 		return PT((BSZ + 1) / 2, (BSZ + 1) / 2);
 
 	/* initialize all the board values */
@@ -336,7 +336,7 @@ scanframes(int color)
 	 */
 	/* LINTED 117: bitwise '>>' on signed value possibly nonportable */
 	for (unsigned int level = 2;
-	     level <= 1 + nmoves / 2 && combolen > n; level++) {
+	     level <= 1 + game.nmoves / 2 && combolen > n; level++) {
 		if (level >= 9)
 			break;	/* Do not think too long. */
 		if (debug != 0) {

Reply via email to