]> git.cameronkatri.com Git - bsdgames-darwin.git/blobdiff - hangman/prdata.c
Avoid messing up the display when too many letters are guessed at once.
[bsdgames-darwin.git] / hangman / prdata.c
index 02321d0a229e73d167e82f6a51d06302a7e4848c..279e41adddedebef112af3b5678509c7dada376f 100644 (file)
@@ -1,6 +1,8 @@
+/*     $NetBSD: prdata.c,v 1.8 2020/07/12 02:34:54 dholland Exp $      */
+
 /*-
- * Copyright (c) 1983 The Regents of the University of California.
- * All rights reserved.
+ * Copyright (c) 1983, 1993
+ *     The Regents of the University of California.  All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions
  * 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.
  *
  * SUCH DAMAGE.
  */
 
+#include <sys/cdefs.h>
 #ifndef lint
-/*static char sccsid[] = "from: @(#)prdata.c   5.3 (Berkeley) 4/8/91";*/
-static char rcsid[] = "$Id: prdata.c,v 1.2 1993/08/01 18:54:23 mycroft Exp $";
+#if 0
+static char sccsid[] = "@(#)prdata.c   8.1 (Berkeley) 5/31/93";
+#else
+__RCSID("$NetBSD: prdata.c,v 1.8 2020/07/12 02:34:54 dholland Exp $");
+#endif
 #endif /* not lint */
 
-# include      "hangman.h"
+#include       "hangman.h"
 
 /*
  * prdata:
  *     Print out the current guesses
  */
-prdata()
+void
+prdata(void)
 {
-       register bool   *bp;
+       int i, n, l;
+
+       for (i = n = 0; i < 26; i++)
+               if (Guessed[i])
+                       n++;
 
-       move(GUESSY, GUESSX + sizeof "Guessed: ");
-       bp = Guessed;
-       while (bp < &Guessed[26])
-               if (*bp++)
-                       addch((bp - Guessed) + 'a' - 1);
+       move(GUESSY, GUESSX);
+       l = sizeof "Guessed: ";
+       if (GUESSX + l + n < COLS) {
+               addstr("Guessed: ");
+       }
+       for (i = 0; i < 26; i++)
+               if (Guessed[i])
+                       addch(i + 'a');
        clrtoeol();
        mvprintw(NUMBERY, NUMBERX + sizeof "Word #:          ", "%d", Wordnum);
-       mvprintw(AVGY, AVGX + sizeof       "Current Average: ", "%.3f",
-                               (Average * (Wordnum - 1) + Errors) / Wordnum);
-       mvprintw(AVGY + 1, AVGX + sizeof   "Overall Average: ", "%.3f", Average);
+       mvprintw(AVGY, AVGX + sizeof "Current Average: ", "%.3f",
+           (Average * (Wordnum - 1) + Errors) / Wordnum);
+       mvprintw(AVGY + 1, AVGX + sizeof "Overall Average: ", "%.3f", Average);
 }