簡単なテキストベースの絞首刑執行人ゲームを開発しようとしています。メインのゲームループは、各文字の推測を入力するプロンプトで始まり、文字が単語に含まれているかどうかを確認し、単語に含まれているかどうかを確認します。そうではありません。ただし、ゲームを実行すると、プロンプトが毎回2回表示され、プログラムはユーザーの入力を待機しません。また、ライフ(正しい入力の場合は1ライフ、正しくない場合は2ライフ)が失われるため、取り込んだものは前の入力と同じではありません。これが私のゲームループです。少し簡略化しています。
while (!finished)
{
printf("Guess the word '%s'\n",covered);
scanf("%c", ¤tGuess);
i=0;
while (i<=wordLength)
{
if (i == wordLength)
{
--numLives;
printf("Number of lives: %i\n", numLives);
break;
} else if (currentGuess == secretWord[i]) {
covered[i] = secretWord[i];
secretWord[i] = '*';
break;
}
++i;
}
j=0;
while (j<=wordLength)
{
if (j == (wordLength)) {
finished = 1;
printf("Congratulations! You guessed the word!\n");
break;
} else {
if (covered[j] == '-') {
break;
}
}
++j;
if (numLives == 0) {
finished = 1;
}
}
}
問題は、スキャンされていないのに何かが取り込まれたと思っていることだと思いますが、その理由はわかりません。誰かが何か考えを持っていますか?Mac OSX10.5でgcc4.0.1を使用しています。