From 83f2ef7227030c4b88ec1006e49d9304aa6f7be0 Mon Sep 17 00:00:00 2001 From: dholland Date: Sat, 13 Oct 2012 19:19:38 +0000 Subject: Pass the move info around instead of using it as a global. --- backgammon/backgammon/backlocal.h | 4 ++-- backgammon/backgammon/main.c | 47 +++++++++++++++++++++------------------ backgammon/backgammon/move.c | 17 +++++++------- 3 files changed, 35 insertions(+), 33 deletions(-) (limited to 'backgammon/backgammon') diff --git a/backgammon/backgammon/backlocal.h b/backgammon/backgammon/backlocal.h index ae9a78b4..4a238b04 100644 --- a/backgammon/backgammon/backlocal.h +++ b/backgammon/backgammon/backlocal.h @@ -1,4 +1,4 @@ -/* $NetBSD: backlocal.h,v 1.4 2009/08/12 05:17:57 dholland Exp $ */ +/* $NetBSD: backlocal.h,v 1.5 2012/10/13 19:19:38 dholland Exp $ */ /*- * Copyright (c) 1997 The NetBSD Foundation, Inc. @@ -32,5 +32,5 @@ void dble(void); int dblgood(void); int freemen(int); -void move(int); +void move(struct move *, int); int trapped(int, int); diff --git a/backgammon/backgammon/main.c b/backgammon/backgammon/main.c index d34636fd..8e38ce82 100644 --- a/backgammon/backgammon/main.c +++ b/backgammon/backgammon/main.c @@ -1,4 +1,4 @@ -/* $NetBSD: main.c,v 1.29 2012/10/13 18:44:14 dholland Exp $ */ +/* $NetBSD: main.c,v 1.30 2012/10/13 19:19:38 dholland Exp $ */ /* * Copyright (c) 1980, 1993 @@ -39,7 +39,7 @@ __COPYRIGHT("@(#) Copyright (c) 1980, 1993\ #if 0 static char sccsid[] = "@(#)main.c 8.1 (Berkeley) 5/31/93"; #else -__RCSID("$NetBSD: main.c,v 1.29 2012/10/13 18:44:14 dholland Exp $"); +__RCSID("$NetBSD: main.c,v 1.30 2012/10/13 19:19:38 dholland Exp $"); #endif #endif /* not lint */ @@ -94,7 +94,7 @@ main(int argc __unused, char **argv) int l; /* non-descript index */ char c; /* non-descript character storage */ time_t t; /* time for random num generator */ - struct move *mm = &gm; + struct move mmstore, *mm; /* revoke setgid privileges */ setgid(getgid()); @@ -118,12 +118,15 @@ main(int argc __unused, char **argv) t = time(NULL); srandom(t); /* 'random' seed */ + /* need this now beceause getarg() may try to load a game */ + mm = &mmstore; + move_init(mm); #ifdef V7 while (*++argv != 0) /* process arguments */ #else while (*++argv != -1) /* process arguments */ #endif - getarg(&argv); + getarg(mm, &argv); args[acnt] = '\0'; if (tflag) { /* clear screen */ noech.c_oflag &= ~(ONLCR | OXTABS); @@ -240,14 +243,14 @@ main(int argc __unused, char **argv) for (;;) { /* begin game! */ /* initial roll if needed */ if ((!rflag) || raflag) - roll(); + roll(mm); /* perform ritual of first roll */ if (!rflag) { if (tflag) curmove(17, 0); while (mm->D0 == mm->D1) /* no doubles */ - roll(); + roll(mm); /* print rolls */ writel(rollr); @@ -291,14 +294,14 @@ main(int argc __unused, char **argv) /* do first move (special case) */ if (!(rflag && raflag)) { if (cturn == pnum) /* computer's move */ - move(0); + move(mm, 0); else { /* player's move */ - mm->mvlim = movallow(); + mm->mvlim = movallow(mm); /* reprint roll */ if (tflag) curmove(cturn == -1 ? 18 : 19, 0); - proll(); - getmove(); /* get player's move */ + proll(mm); + getmove(mm); /* get player's move */ } } if (tflag) { @@ -323,7 +326,7 @@ main(int argc __unused, char **argv) /* do computer's move */ if (cturn == pnum) { - move(1); + move(mm, 1); /* see if double refused */ if (cturn == -2 || cturn == 2) @@ -363,12 +366,12 @@ main(int argc __unused, char **argv) /* save game */ case 'S': raflag = 1; - save(1); + save(mm, 1); break; /* quit */ case 'Q': - quit(); + quit(mm); break; /* double */ @@ -379,7 +382,7 @@ main(int argc __unused, char **argv) /* roll */ case ' ': case '\n': - roll(); + roll(mm); writel(" rolls "); writec(mm->D0 + '0'); writec(' '); @@ -387,7 +390,7 @@ main(int argc __unused, char **argv) writel(". "); /* see if he can move */ - if ((mm->mvlim = movallow()) == 0) { + if ((mm->mvlim = movallow(mm)) == 0) { /* can't move */ writel(toobad1); @@ -403,7 +406,7 @@ main(int argc __unused, char **argv) break; } /* get move */ - getmove(); + getmove(mm); /* okay to clean screen */ hflag = 1; @@ -430,13 +433,13 @@ main(int argc __unused, char **argv) } else {/* couldn't double */ /* print roll */ - roll(); + roll(mm); if (tflag) curmove(cturn == -1 ? 18 : 19, 0); - proll(); + proll(mm); /* can he move? */ - if ((mm->mvlim = movallow()) == 0) { + if ((mm->mvlim = movallow(mm)) == 0) { /* he can't */ writel(toobad2); @@ -448,7 +451,7 @@ main(int argc __unused, char **argv) continue; } /* get move */ - getmove(); + getmove(mm); } } @@ -508,7 +511,7 @@ main(int argc __unused, char **argv) if (i == 2) { writel(" Save.\n"); cturn = 0; - save(0); + save(mm, 0); } /* yes, reset game */ wrboard(); @@ -521,7 +524,7 @@ main(int argc __unused, char **argv) /* re-initialize for recovery */ init(); cturn = 0; - save(0); + save(mm, 0); } } /* leave peacefully */ diff --git a/backgammon/backgammon/move.c b/backgammon/backgammon/move.c index 6e1d4ce7..8a87fa00 100644 --- a/backgammon/backgammon/move.c +++ b/backgammon/backgammon/move.c @@ -1,4 +1,4 @@ -/* $NetBSD: move.c,v 1.11 2012/10/13 18:44:14 dholland Exp $ */ +/* $NetBSD: move.c,v 1.12 2012/10/13 19:19:38 dholland Exp $ */ /* * Copyright (c) 1980, 1993 @@ -34,7 +34,7 @@ #if 0 static char sccsid[] = "@(#)move.c 8.1 (Berkeley) 5/31/93"; #else -__RCSID("$NetBSD: move.c,v 1.11 2012/10/13 18:44:14 dholland Exp $"); +__RCSID("$NetBSD: move.c,v 1.12 2012/10/13 19:19:38 dholland Exp $"); #endif #endif /* not lint */ @@ -100,11 +100,10 @@ static int movegood(void); /* zero if first move */ void -move(int okay) +move(struct move *mm, int okay) { int i; /* index */ int l; /* last man */ - struct move *mm = &gm; l = 0; if (okay) { @@ -116,7 +115,7 @@ move(int okay) if (cturn != 1 && cturn != -1) return; } - roll(); + roll(mm); } race = 0; for (i = 0; i < 26; i++) { @@ -144,7 +143,7 @@ move(int okay) fixtty(&noech); /* find out how many moves */ - mm->mvlim = movallow(); + mm->mvlim = movallow(mm); if (mm->mvlim == 0) { writel(" but cannot use it.\n"); nexturn(); @@ -167,7 +166,7 @@ move(int okay) wrint(mm->p[i] = cp[i]); writec('-'); wrint(mm->g[i] = cg[i]); - makmove(i); + makmove(mm, i); } writec('.'); @@ -227,12 +226,12 @@ trymove(struct move *mm, int mvnum, int swapped) mm->g[mvnum] = home; } /* try to move */ - if (makmove(mvnum)) + if (makmove(mm, mvnum)) continue; else trymove(mm, mvnum + 1, 2); /* undo move to try another */ - backone(mvnum); + backone(mm, mvnum); } /* swap dice and try again */ -- cgit v1.2.3-56-ge451