0

codecademy の指示に従ってハングマン ゲームを作成しようとしていますが、1 人で進めるのに苦労しています。以下のguessLetter関数では、彼らが私に与えた指示に従って2行のコードを追加しました

これ

shown = alterAt(checkLetter,letter,shown);           ///this is mine

この

checkLetter = indexOf(letter, checkLetter +1); 

ただし、テストに合格することはできません。お役に立てれば幸いです。

// Skip to guessLetter(). You shouldn't need to touch this function.
function alterAt ( n, c, originalString ) {
    return originalString.substr(0,n) + c + originalString.substr(n+1,originalString.length);
}

function guessLetter( letter, shown, answer ) {
    var checkLetter = -1;  // This variable will hold the indexOf()

    checkLetter = answer.indexOf(letter); // Single Argument Version starting at 0
    while ( checkLetter >= 0 ) {

        // Replace the letter in shown with alterAt() and then store in shown.
       shown = alterAt(checkLetter,letter,shown);           ///this is mine
        // Use indexOf() again and store in checkLetter

        checkLetter = indexOf(letter, checkLetter +1);       ///this is mine
    }

    // Return our string, modified or not
    return shown;
}

アップデート

推測が正しければ、推測によって変更された show を返すはずです。たとえば、単語が tree でプレイヤーが「e」を推測した場合、「__ee」が返されます。これは、「何でも」という言葉を使用して作業できないフィドルです: http://jsfiddle.net/mjmitche/YAPWm/2/

4

1 に答える 1

0

この行にエラーがあります:

checkLetter = indexOf(letter, checkLetter +1);

.indexOf()前の行にあったように、メソッドは文字列で呼び出す必要がありwhile()ます これを次のように変更します。

checkLetter = answer.indexOf(letter, checkLetter +1);

作業バージョン: http://jsfiddle.net/YAPWm/1/

于 2012-09-08T22:42:19.443 に答える