我有个关于我的游戏的问题。似乎我只能打印一封信,而不是一个字有多少。例如,“星球大战”看起来像“星球大战”。
//array of Star Wars Names
var words = ["star wars",
"senator organa",
"boba fett",
"chewbacca",
"luke skywalker",
"darth vader",
"lando calrissian",
"anakin skywalker",
"padme amidala"
];
//Declared variables
var rightLetter = [];
var wrongLetter = [];
var underScore = [];
var underScore = [];
var randomWords = Math.floor(Math.random() * words.length);
var chosenWords = words[randomWords];
var starWarsNames = document.getElementsByClassName("Star_Wars_words");
var correctGuess = document.getElementsByClassName("rightGuess");
var incorrectGuess = document.getElementsByClassName("wrongGuess");
//random word array
console.log(chosenWords);
function generateUnderscore() {
for (i = 0; i < chosenWords.length; i++) {
underScore.push("_");
}
return underScore;
}
//Game Loop
document.addEventListener("keypress", letterPressed);
//letter function
function letterPressed(event) {
var letter = String.fromCharCode(event.keyCode);
if (chosenWords.indexOf(letter) > -1) {
rightLetter.push(letter);
underScore[chosenWords.indexOf(letter)] = letter;
starWarsNames[0].innerHTML = underScore.join(" ");
correctGuess[0].innerHTML = rightLetter;
if (underScore.join(" ") == chosenWords) {
alert("The force is strong with you!");
}
} else {
wrongLetter.push(letter);
incorrectGuess[0].innerHTML = wrongLetter;
}
}
console.log(rightLetter);
console.log(wrongLetter);
console.log(starWarsNames);<div class="Star_Wars_words">
</div>
<div class="rightGuess">
</div>
<div class="wrongGuess">
</div>
发布于 2017-12-07 20:18:15
在letterPressed函数中,可以重新组织它以检查多个实例。例如:
var idx = 0;
idx = chosenWords.indexOf(letter, idx);
if (idx == -1) {
wrongLetter.push(letter);
incorrectGuess[0].innerHTML = wrongLetter;
return;
}
while (idx > -1) {
rightLetter.push(letter);
underScore[idx] = letter;
starWarsNames[0].innerHTML = underScore.join(" ");
correctGuess[0].innerHTML = rightLetter;
if(underScore.join(" ") == chosenWords) {
alert("The force is strong with you!");
}
idx = chosenWords.indexOf(letter, ++idx);
}因此,区别在于,如果找到了一个字母(idx > -1),那么您将像以前一样处理它,但是您将用该信函的下一个索引更新idx。
https://stackoverflow.com/questions/47702837
复制相似问题