# include "hangman.h" # if pdp11 # define RN (((off_t) rand() << 16) | (off_t) rand()) # else # define RN rand() # endif /* * getword: * Get a valid word out of the dictionary file */ getword() { register FILE *inf; register char *wp, *gp; inf = Dict; for (;;) { fseek(inf, abs(RN % Dict_size), 0); if (fgets(Word, BUFSIZ, inf) == NULL) continue; if (fgets(Word, BUFSIZ, inf) == NULL) continue; Word[strlen(Word) - 1] = '\0'; if (strlen(Word) < MINLEN) continue; for (wp = Word; *wp; wp++) if (!islower(*wp)) goto cont; break; cont: ; } gp = Known; wp = Word; while (*wp) { *gp++ = '-'; wp++; } *gp = '\0'; } /* * abs: * Return the absolute value of an integer */ off_t abs(i) off_t i; { if (i < 0) return -(off_t) i; else return (off_t) i; }