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: */
13: getword()
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;
32: cont: ;
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: */
47: off_t
48: abs(i)
49: off_t i;
50: {
51: if (i < 0)
52: return -(off_t) i;
53: else
54: return (off_t) i;
55: }
Defined functions
abs
defined in line
47; used 2 times
Defined macros
RN
defined in line
6; used 1 times