2

やあみんな(私はJava BTWが初めてです)

Java を使用して小さな推測ゲームを開発していますが、問題が発生しました。誰かがこの問題を克服するのを手伝ってくれれば、本当に感謝しています。

ゲームは次のようなものです。

  • 推測単語のリストはデータベースに保存されます
  • ランダムな単語の 1 つが選択され、
  • 変装した形でユーザーに表示される
  • ユーザーは文字を使用して単語を推測する必要があります
  • ゲームが終わるまで、彼らは5文字を推測する必要があります

今、私の問題は、エラー数で立ち往生していることです...

私のコードは次のようなものです:

 //word is the word that user must guess
 // asciiToChar is letter that users've guessed
 // J is just a variable used for count

 for (j=0; j < word.length(); j++)
       {    if (word.charAt(j) != asciiToChar)
            {
             error++;
            }
       }
 System.out.println("Number of Errors: "+" "+ error);

ユーザーが間違った推測を行うたびに、エラー数が増えるはずですが、8,14 などの乱数が表示されます。5回の推測までカウントを1つだけ増やす方法を理解する必要があります

word.charAt(j) != asciiToCharそして、代わり に使用するたびに==、正しい推測の正しいカウントが得られます。

私はそれを理解することはできません:(

どんな助けでも感謝します

4

2 に答える 2

1

ループ ロジックが間違っています。ユーザーの推測と一致しないすべての文字にエラーが追加されます。

このようにしてみてください(私が正しければ):

boolean found = false;
for (j=0; j < word.length(); j++)
{    
    if (word.charAt(j) == asciiToChar)
    {
        found = true;
        break; // no need to search further
    }
}
if(!found) error++; // if the letter isn't used, add 1 error

コメントで Ingo Bürk が正当に指摘したように、これには事前に作成されたソリューションがあります。

if(!word.contains(asciiToChar)) { error++; }
于 2013-11-09T13:19:41.810 に答える
1

ループはすべての文字を通過し、ユーザーが指定した文字wordと一致しない文字ごとに、エラーが 1 増加します。そのため、単語が「cat」でユーザーが「a」を推測した場合、「c」と「t」の 2 つのエラーが発生します。

于 2013-11-09T13:19:44.867 に答える