BSD 4_2 development
[unix-history] / usr / src / games / hangman / getword.c
CommitLineData
198139e7
C
1# include "hangman.h"
2
3# if pdp11
4# define RN (((off_t) rand() << 16) | (off_t) rand())
5# else
6# define RN rand()
7# endif
8
9/*
10 * getword:
11 * Get a valid word out of the dictionary file
12 */
13getword()
14{
15 register FILE *inf;
16 register char *wp, *gp;
17
18 inf = Dict;
19 for (;;) {
20 fseek(inf, abs(RN % Dict_size), 0);
21 if (fgets(Word, BUFSIZ, inf) == NULL)
22 continue;
23 if (fgets(Word, BUFSIZ, inf) == NULL)
24 continue;
25 Word[strlen(Word) - 1] = '\0';
26 if (strlen(Word) < MINLEN)
27 continue;
28 for (wp = Word; *wp; wp++)
29 if (!islower(*wp))
30 goto cont;
31 break;
32cont: ;
33 }
34 gp = Known;
35 wp = Word;
36 while (*wp) {
37 *gp++ = '-';
38 wp++;
39 }
40 *gp = '\0';
41}
42
43/*
44 * abs:
45 * Return the absolute value of an integer
46 */
47off_t
48abs(i)
49off_t i;
50{
51 if (i < 0)
52 return -(off_t) i;
53 else
54 return (off_t) i;
55}