]> git.cameronkatri.com Git - bsdgames-darwin.git/blobdiff - cribbage/support.c
avoid leaving off the trailing nul in a literal string.
[bsdgames-darwin.git] / cribbage / support.c
index 96ea67ad424eec4a57dc4ae3fe40347d14260879..a576aee0b129cc175ee6e89b04e6c80825fe6402 100644 (file)
@@ -1,4 +1,4 @@
-/*     $NetBSD: support.c,v 1.4 1997/10/10 12:32:36 lukem Exp $        */
+/*     $NetBSD: support.c,v 1.14 2009/08/12 05:48:04 dholland Exp $    */
 
 /*-
  * Copyright (c) 1980, 1993
  * 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.
  *
 #if 0
 static char sccsid[] = "@(#)support.c  8.1 (Berkeley) 5/31/93";
 #else
-__RCSID("$NetBSD: support.c,v 1.4 1997/10/10 12:32:36 lukem Exp $");
+__RCSID("$NetBSD: support.c,v 1.14 2009/08/12 05:48:04 dholland Exp $");
 #endif
 #endif /* not lint */
 
 #include <curses.h>
+#include <stdlib.h>
 #include <string.h>
 
 #include "deck.h"
@@ -52,16 +49,18 @@ __RCSID("$NetBSD: support.c,v 1.4 1997/10/10 12:32:36 lukem Exp $");
 #define        NTV     10              /* number scores to test */
 
 /* score to test reachability of, and order to test them in */
-int tv[NTV] = {8, 7, 9, 6, 11, 12, 13, 14, 10, 5};
+static const int tv[NTV] = {8, 7, 9, 6, 11, 12, 13, 14, 10, 5};
+
+static int anysumto(const CARD[], int, int, int);
+static void prpeg(int, int, BOOLEAN);
+static int numofval(const CARD[], int, int);
 
 /*
  * computer chooses what to play in pegging...
  * only called if no playable card will score points
  */
 int
-cchose(h, n, s)
-       CARD h[];
-       int n, s;
+cchose(const CARD h[], int n, int s)
 {
        int i, j, l;
 
@@ -120,6 +119,10 @@ cchose(h, n, s)
                        break;
                }
        }
+       if (j < 0) {
+               printf("\ncchose: internal error %d %d\n", j, n);
+               exit(93);
+       }
        return (j);
 }
 
@@ -128,16 +131,14 @@ cchose(h, n, s)
  *     Evaluate and score a player hand or crib
  */
 int
-plyrhand(hand, s)
-       CARD    hand[];
-       char   *s;
+plyrhand(const CARD hand[], const char *s)
 {
        static char prompt[BUFSIZ];
        int i, j;
        BOOLEAN win;
 
        prhand(hand, CINHAND, Playwin, FALSE);
-       (void) sprintf(prompt, "Your %s scores ", s);
+       (void) snprintf(prompt, sizeof(prompt), "Your %s scores ", s);
        i = scorehand(hand, turnover, CINHAND, strcmp(s, "crib") == 0, explain);
        if ((j = number(0, 29, prompt)) == 19)
                j = 0;
@@ -152,7 +153,7 @@ plyrhand(hand, s)
                        msg("You should have taken %d, not %d!", i, j);
                }
                if (explain)
-                       msg("Explanation: %s", expl);
+                       msg("Explanation: %s", explan);
                do_wait();
        } else
                win = chkscr(&pscore, i);
@@ -164,9 +165,7 @@ plyrhand(hand, s)
  *     Handle scoring and displaying the computers hand
  */
 int
-comphand(h, s)
-       CARD h[];
-       char *s;
+comphand(const CARD h[], const char *s)
 {
        int j;
 
@@ -184,8 +183,7 @@ comphand(h, s)
 int Lastscore[2] = {-1, -1};
 
 int
-chkscr(scr, inc)
-       int    *scr, inc;
+chkscr(int *scr, int inc)
 {
        BOOLEAN myturn;
 
@@ -205,11 +203,8 @@ chkscr(scr, inc)
  *     Put out the peg character on the score board and put the
  *     score up on the board.
  */
-void
-prpeg(score, peg, myturn)
-       int score;
-       int peg;
-       BOOLEAN myturn;
+static void
+prpeg(int curscore, int pegc, BOOLEAN myturn)
 {
        int y, x;
 
@@ -218,26 +213,26 @@ prpeg(score, peg, myturn)
        else
                y = SCORE_Y + 5;
 
-       if (score <= 0 || score >= glimit) {
-               if (peg == '.')
-                       peg = ' ';
-               if (score == 0)
+       if (curscore <= 0 || curscore >= glimit) {
+               if (pegc == '.')
+                       pegc = ' ';
+               if (curscore == 0)
                        x = SCORE_X + 2;
                else {
                        x = SCORE_X + 2;
                        y++;
                }
        } else {
-               x = (score - 1) % 30;
-               if (score > 90 || (score > 30 && score <= 60)) {
+               x = (curscore - 1) % 30;
+               if (curscore > 90 || (curscore > 30 && curscore <= 60)) {
                        y++;
                        x = 29 - x;
                }
                x += x / 5;
                x += SCORE_X + 3;
        }
-       mvaddch(y, x, peg);
-       mvprintw(SCORE_Y + (myturn ? 7 : 1), SCORE_X + 10, "%3d", score);
+       mvaddch(y, x, pegc);
+       mvprintw(SCORE_Y + (myturn ? 7 : 1), SCORE_X + 10, "%3d", curscore);
 }
 
 /*
@@ -245,8 +240,7 @@ prpeg(score, peg, myturn)
  * the crib and puts the best two cards at the end
  */
 void
-cdiscard(mycrib)
-       BOOLEAN mycrib;
+cdiscard(BOOLEAN mycrib)
 {
        CARD    d[CARDS], h[FULLHAND], cb[2];
        int i, j, k;
@@ -298,9 +292,7 @@ cdiscard(mycrib)
  * returns true if some card in hand can be played without exceeding 31
  */
 int
-anymove(hand, n, sum)
-       CARD hand[];
-       int n, sum;
+anymove(const CARD hand[], int n, int sum)
 {
        int i, j;
 
@@ -318,10 +310,8 @@ anymove(hand, n, sum)
  * anysumto returns the index (0 <= i < n) of the card in hand that brings
  * the s up to t, or -1 if there is none
  */
-int
-anysumto(hand, n, s, t)
-       CARD hand[];
-       int n, s, t;
+static int
+anysumto(const CARD hand[], int n, int s, int t)
 {
        int i;
 
@@ -335,10 +325,8 @@ anysumto(hand, n, s, t)
 /*
  * return the number of cards in h having the given rank value
  */
-int
-numofval(h, n, v)
-       CARD h[];
-       int n, v;
+static int
+numofval(const CARD h[], int n, int v)
 {
        int i, j;
 
@@ -354,9 +342,7 @@ numofval(h, n, v)
  * makeknown remembers all n cards in h for future recall
  */
 void
-makeknown(h, n)
-       CARD h[];
-       int n;
+makeknown(const CARD h[], int n)
 {
        int i;