|
|
1.1 root 1: # include "hangman.h"
2:
3: /*
4: * getguess:
5: * Get another guess
6: */
7: getguess()
8: {
9: register int i;
10: register int ch;
11: register bool correct;
12:
13: leaveok(stdscr, FALSE);
14: for (;;) {
15: move(PROMPTY, PROMPTX + sizeof "Guess: ");
16: refresh();
17: ch = readch();
18: if (isalpha(ch)) {
19: if (isupper(ch))
20: ch = tolower(ch);
21: if (Guessed[ch - 'a'])
22: mvprintw(MESGY, MESGX, "Already guessed '%c'", ch);
23: else
24: break;
25: }
26: else if (ch == CTRL(D))
27: die();
28: else
29: mvprintw(MESGY, MESGX, "Not a valid guess: '%s'",
30: unctrl(ch));
31: }
32: leaveok(stdscr, TRUE);
33: move(MESGY, MESGX);
34: clrtoeol();
35:
36: Guessed[ch - 'a'] = TRUE;
37: correct = FALSE;
38: for (i = 0; Word[i] != '\0'; i++)
39: if (Word[i] == ch) {
40: Known[i] = ch;
41: correct = TRUE;
42: }
43: if (!correct)
44: Errors++;
45: }
46:
47: /*
48: * readch;
49: * Read a character from the input
50: */
51: readch()
52: {
53: register int cnt, r;
54: auto char ch;
55:
56: cnt = 0;
57: for (;;) {
58: if (read(0, &ch, sizeof ch) <= 0)
59: {
60: if (++cnt > 100)
61: die();
62: }
63: else if (ch == CTRL(L)) {
64: wrefresh(curscr);
65: mvcur(0, 0, curscr->_cury, curscr->_curx);
66: }
67: else
68: return ch;
69: }
70: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.