Bug #1787
closed
Hangman: case-sensitive problem?
Added by Anonymous over 14 years ago.
Updated over 14 years ago.
Description
While playing hangman, the word offered was 'Theocritan', but when I guessed
't', it only filled in the second 't'. I haven't looked at the code, but
I'm guessing that it's not recognizing the uppercase T.
Tim
Files
The code makes all your answers lower case.
This patch will also compare the uppercase version of your letter.
diff --git a/games/hangman/getguess.c b/games/hangman/getguess.c
index b5b60c0..8a40c7c 100644
--- a/games/hangman/getguess.c
++ b/games/hangman/getguess.c
@ -71,8 +71,8
@ getguess(void)
Guessed[ch - 'a'] = TRUE;
correct = FALSE;
for (i = 0; Word[i] != '\0'; i+) {
- if (Word[i] == ch) {
- Known[i] = ch;
+ if (Word[i] ch || Word[i] toupper(ch) ) {
+ Known[i] = Word[i];
correct = TRUE;
}
}
Dylan
On 06/23/2010 02:33 PM, Tim Darby wrote:
While playing hangman, the word offered was 'Theocritan', but when I
guessed 't', it only filled in the second 't'. I haven't looked at
the code, but I'm guessing that it's not recognizing the uppercase T.
Tim
On 6/24/2010 5:53, Dylan Reinhold wrote:
The code makes all your answers lower case.
This patch will also compare the uppercase version of your letter.
I've fixed it. However I took OpenBSD's code (oops, should have noted
that in the commit message) which calls toupper() only once.
Regards,
Sascha
Committed -> 09871f9d92dfbc060605c073f2615ebca6c12c94
Thanks, guys
Also available in: Atom
PDF