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