0

私は JavaScript に非常に慣れていないので、愚かな間違いを犯した場合は申し訳ありませんが、ここでエラーを見つけることができません。「自分の冒険を選ぶ」タイプのゲームを作成していますが、do/while ループと if/else ステートメントを追加するまではスムーズに進みました。

私はしばらくテストしてきましたが、消去法により、次の行がある場合にのみエラーが表示されることがわかりました。

if (worst === (options[0] || options[1])) {
    options.splice(2, 0, best);

しかし、私の人生では間違いを見つけることができません。

それが役立つ場合、これはスクリプト全体です。

var options = ["STRENGTH", "SPEED", "SMARTS"];
alert("Before we begin our journey, let's learn a little bit  about you.");
var user = prompt("What is your name?").toUpperCase();
do {
var bestLoop = false;
var best = prompt("So " + user + ", what is your greatest ability, STRENGTH, SPEED, or SMARTS?").toUpperCase();
if (best === ("STRENGTH" || "SPEED" || "SMARTS")) {
        var offset = options.indexOf(best);
        if (offset != -1) {
            options.splice(offset, 1);
        }   
    } else {
    alert("Please choose either STRENGTH, SPEED, or SMARTS as your greatest ability.");
        bestLoop = true;
    }
} while (bestLoop);
alert("Great! So " + best + " is yor greatest ability.");
do {
var worstLoop = false;
var worst = prompt("So which is your greatest weakness, " + options[0] + " or " + options[1] + "?").toUpperCase();
if (worst === (options[0] || options[1])) {
    options.splice(2, 0, best);
} else {
    alert("Please choose either " + options[0] + " or " + options[1] " as your greatest weakness.");
    worstLoop = true;
}
} while (worstLoop);
alert("Great. So your name is " + user + ", " + best + " is your greatest ability, and " + worst + " is your greatest weakness.");

繰り返しますが、見落としがあった場合は申し訳ありませんが、これは数時間私を夢中にさせており、問題を見つけることができないようです.

4

1 に答える 1