diff options
Diffstat (limited to 'games/backgammon/common_source/one.c')
-rw-r--r-- | games/backgammon/common_source/one.c | 136 |
1 files changed, 69 insertions, 67 deletions
diff --git a/games/backgammon/common_source/one.c b/games/backgammon/common_source/one.c index 4da451a96c0..a30b3e0f29d 100644 --- a/games/backgammon/common_source/one.c +++ b/games/backgammon/common_source/one.c @@ -1,4 +1,4 @@ -/* $NetBSD: one.c,v 1.3 1995/03/21 15:05:49 cgd Exp $ */ +/* $OpenBSD: one.c,v 1.2 1998/03/19 11:13:23 pjanzen Exp $ */ /* * Copyright (c) 1980, 1993 @@ -37,138 +37,140 @@ #if 0 static char sccsid[] = "@(#)one.c 8.1 (Berkeley) 5/31/93"; #else -static char rcsid[] = "$NetBSD: one.c,v 1.3 1995/03/21 15:05:49 cgd Exp $"; +static char rcsid[] = "$OpenBSD: one.c,v 1.2 1998/03/19 11:13:23 pjanzen Exp $"; #endif #endif /* not lint */ #include "back.h" -makmove (i) -register int i; - +int +makmove(i) + int i; { - register int n, d; - int max; + int n, d; + int max; d = d0; - n = abs(g[i]-p[i]); - max = (*offptr < 0? 7: last()); - if (board[p[i]]*cturn <= 0) - return (checkd(d)+2); - if (g[i] != home && board[g[i]]*cturn < -1) - return (checkd(d)+3); - if (i || D0 == D1) { - if (n == max? D1 < n: D1 != n) - return (checkd(d)+1); - } else { - if (n == max? D0 < n && D1 < n: D0 != n && D1 != n) - return (checkd(d)+1); - if (n == max? D0 < n: D0 != n) { + n = abs(g[i] - p[i]); + max = (*offptr < 0 ? 7 : last()); + if (board[p[i]] * cturn <= 0) + return(checkd(d) + 2); + if (g[i] != home && board[g[i]] * cturn < -1) + return(checkd(d) + 3); + if (i || D0 == D1) { + if (n == max ? D1 < n : D1 != n) + return(checkd(d) + 1); + } else { + if (n == max ? D0 < n && D1 < n : D0 != n && D1 != n) + return(checkd(d) + 1); + if (n == max ? D0 < n : D0 != n) { if (d0) - return (checkd(d)+1); + return (checkd(d) + 1); swap; } } if (g[i] == home && *offptr < 0) - return (checkd(d)+4); + return(checkd(d) + 4); h[i] = 0; board[p[i]] -= cturn; - if (g[i] != home) { - if (board[g[i]] == -cturn) { + if (g[i] != home) { + if (board[g[i]] == -cturn) { board[home] -= cturn; board[g[i]] = 0; h[i] = 1; - if (abs(bar-g[i]) < 7) { + if (abs(bar - g[i]) < 7) { (*inopp)--; if (*offopp >= 0) *offopp -= 15; } } board[g[i]] += cturn; - if (abs(home-g[i]) < 7 && abs(home-p[i]) > 6) { + if (abs(home - g[i]) < 7 && abs(home - p[i]) > 6) { (*inptr)++; - if (*inptr+*offptr == 0) + if (*inptr + *offptr == 0) *offptr += 15; } } else { (*offptr)++; (*inptr)--; } - return (0); + return(0); } - -moverr (i) -register int i; +void +moverr(i) + int i; { - register int j; + int j; if (tflag) - curmove (20,0); + curmove(20, 0); else - writec ('\n'); - writel ("Error: "); - for (j = 0; j <= i; j++) { - wrint (p[j]); - writec ('-'); - wrint (g[j]); + writec('\n'); + writel("Error: "); + for (j = 0; j <= i; j++) { + wrint(p[j]); + writec('-'); + wrint(g[j]); if (j < i) - writec (','); + writec(','); } - writel ("... "); - movback (i); + writel("... "); + movback(i); } - -checkd (d) -register int d; - +int +checkd(d) + int d; { if (d0 != d) swap; - return (0); + return(0); } -last () { - register int i; +int +last() +{ + int i; - for (i = home-6*cturn; i != home; i += cturn) - if (board[i]*cturn > 0) - return (abs(home-i)); + for (i = home - 6 * cturn; i != home; i += cturn) + if (board[i] * cturn > 0) + return(abs(home - i)); + return(-1); } - -movback (i) -register int i; +void +movback(i) + int i; { - register int j; + int j; - for (j = i-1; j >= 0; j--) + for (j = i - 1; j >= 0; j--) backone(j); } -backone (i) -register int i; - +void +backone(i) + int i; { board[p[i]] += cturn; - if (g[i] != home) { + if (g[i] != home) { board[g[i]] -= cturn; - if (abs(g[i]-home) < 7 && abs(p[i]-home) > 6) { + if (abs(g[i] - home) < 7 && abs(p[i] - home) > 6) { (*inptr)--; - if (*inptr+*offptr < 15 && *offptr >= 0) + if (*inptr + *offptr < 15 && *offptr >= 0) *offptr -= 15; } - } else { + } else { (*offptr)--; (*inptr)++; } - if (h[i]) { + if (h[i]) { board[home] += cturn; board[g[i]] = -cturn; - if (abs(bar-g[i]) < 7) { + if (abs(bar - g[i]) < 7) { (*inopp)++; - if (*inopp+*offopp == 0) + if (*inopp + *offopp == 0) *offopp += 15; } } |