Эй, ребята, я учился, и я начал программировать игру Hangman. Это должно быть сыграно более одного слова, и я выбрал «informatik».Основные проблемы с C-часовым
Что я хочу сделать, это попросить имя пользователя, а затем начать.
#include<stdio.h>
int main() {
int correct = 0;
int mistake = 0;
int number = 0;
char name[20];
char Word[]={'i','n','f','o','r','m','a','t','i','k'};
char guessStatus[]={'_','_','_','_','_','_','_','_','_','_','\0'};
char guess;
printf("##### Welcome to Hangman #####\nWhat is your Name?\n");
scanf(" %s", name);
fflush(stdin);
printf("Hello %s!\n", name);
while (mistake <=10 && number<10) {
printf("Guess a letter: ");
guess = getchar();
printf("%c", guess);
correct = 0;
for (int search=0; search<10; search++)
{
if (guess == Word[search]){
number++;
guessStatus[search] = Word[search];
correct = 1;
}
}
if (correct == 0){
mistake++;
printf("%c is wrong!\nYour Status is: %s\nYou have %i tries left\n", guess,guessStatus,10-mistake);
}
else {
printf("Good job %s!\nYour Status is: %s\nYou have %i tries left\n", name,guessStatus,10-mistake);
}
}
}
Проблема заключается в том, когда я запускаю код и ввести любую букву, программа рассчитывает «войти», также как letter.I используется fflush (STDIN) в надежде, даже я ничего не знаю об этом, но не сработало :) Проблема выхода как:
Добро пожаловать в HangmanКак вас зовут? john Здравствуйте, john! Угадайте письмо:
неправ! Ваш статус: __________ У вас осталось 9 попыток Угадай письмо: i iGood job john! Ваш статус: i_______i_ У вас есть 9 попыток осталось Угадай письмо:
это неправильно! Ваш статус: i_______i_ У вас осталось 8 попыток
Я не знаю, как с этим бороться. Помочь будет очень благодарен.
Что означает «это [..] не работает» означает? Он рухнул? Вы получили сообщение об ошибке? Какая ошибка? – TobiMcNamobi
'fflush (stdin)' is undeined поведение –
Если вы не хотите, чтобы «вводить» считалось буквой, добавьте 'if (guess == '\ n') continue;' или что-то в этом роде. Но было бы лучше проверить буквы: 'if (guess <'a' || guess> 'z')', но детали будут отличаться в зависимости от вашего языка и словаря. – rodrigo