Javascript 如何在不重置分数的情况下重置刽子手游戏?
我正在做这个刽子手游戏,我很难让输赢计数器正常工作 看来我的损失计数器工作,但猜测的数量将进入负面。它会将游戏视为失败,但不会重置它 当我设置win count时,它统计每个用户的点击次数,而不是整个单词。到目前为止,我尝试的所有游戏都失败了 当有人输了或赢了之后,如何在保持分数的同时重新设置游戏Javascript 如何在不重置分数的情况下重置刽子手游戏?,javascript,Javascript,我正在做这个刽子手游戏,我很难让输赢计数器正常工作 看来我的损失计数器工作,但猜测的数量将进入负面。它会将游戏视为失败,但不会重置它 当我设置win count时,它统计每个用户的点击次数,而不是整个单词。到目前为止,我尝试的所有游戏都失败了 当有人输了或赢了之后,如何在保持分数的同时重新设置游戏 function getItem() { var array = [ { answer: "harvey", hint: "Thank you Harvey,
function getItem() {
var array = [
{
answer: "harvey",
hint: "Thank you Harvey, I prefer you too."
},
{
answer: "titanic",
hint: "Jack, I’m flying!"
},
{
answer: "jaws",
hint: "You’re Gonna Need A Bigger Boat…"
},
{
answer: "rocky",
hint: "ADRIAAAAAAAAAAAN!!!!!!!!"
},
{
answer: "casablanca",
hint: "We'll always have Paris."
},
{
answer: "braveheart",
hint: "They may take away our lives, but they'll never take our freedom!"
},
{
answer: "goodfellas",
hint: "As far back as I can remember, I always wanted to be a gangster."
},
{
answer: "diehard",
hint: "Nine million terrorists in the world and I gotta kill one with feet smaller than my sister."
},
{
answer: "chinatown",
hint: "Forget it, Jake, it's Chinatown."
},
{
answer: "psycho",
hint: "A boy's best friend is his mother.",
}
]
var randomNumber = Math.floor(Math.random() * array.length);
return array[randomNumber];
};
var randomThing = getItem()
document.getElementById("hint-text").innerHTML = ("Here is your
hint.... " + randomThing.hint.italics());
var blankSpacesAnswer = [];
var blanksAndSuccesses = document.getElementById("blankspaces-text");
for (var i = 0; i < randomThing.answer.length; i++) {
blankSpacesAnswer[i] = "_";
console.log(blankSpacesAnswer);
blanksAndSuccesses.innerHTML = ("Your word: " +
blankSpacesAnswer.join(" "));
};
var currentWord;
var guessingWord = [];
var winCounter = 0;
var lossCounter = 0;
var numGuesses = 12;
var letterGuessed = "";
var wrongGuesses = [];
var remainingLetters = randomThing.answer.length;
document.onkeyup = function (event) {
var userGuess = event.key;
console.log(userGuess);
var answerLetterArray = randomThing.answer.split("");
guessingWord.length = answerLetterArray.length;
console.log(answerLetterArray);
if (remainingLetters > 0) {
var guessesEl = document.getElementById("blankspaces-text")
guessesEl.innerHTML = blankSpacesAnswer.join(" ")
var notFound = false;
for (var i = 0; i < answerLetterArray.length; i++) {
console.log(answerLetterArray[i]);
if (userGuess === answerLetterArray[i]) {
blankSpacesAnswer[i] = userGuess
}
else if (answerLetterArray[i] !== userGuess) {
notFound = true;
}
blanksAndSuccesses.innerHTML = ("Your word: " +
blankSpacesAnswer.join(" "));
document.getElementById("usser-guesses-text").innerHTML =
("Your guesses: " + userGuess);
document.getElementById("wins-text").textContent = ("Wins: " +
winCounter);
}
if (notFound === true) {
numGuesses--;
}
if (numGuesses === 0)
lossCounter++;
}
document.getElementById("guesses-left").textContent = ("Number of
guesses: " + numGuesses);
document.getElementById("losses-text").textContent = ("Losses: " +
lossCounter);
};
你的麻烦的根本原因似乎是游戏刚刚开始,没有真正的概念设置它,赢得它或失去它 因此,当您跟踪猜测的状态时,您并不是在跟踪游戏本身的状态 我建议将代码分成几个部分: 安装程序 初始化 运行/循环 游戏结束 设置阶段应设置用户界面、密钥处理程序等 初始化开始游戏选择一个随机单词,设置你想要的猜测次数,等等 运行/循环将只等待您的输入并跟踪游戏状态。如果出现赢或输的情况,则应相应结束游戏 当游戏结束时,您可以通过返回初始化阶段来重置/重新启动游戏 如果您将代码放入函数setup、initialize、run和win/lose中,您可以在需要切换游戏状态时调用这些函数
更新:您是否调试了代码?展示你的研究成果。我在这里创建了一个代码沙盒,其中包含一些我认为存在的html代码:哇。。。。非常感谢。你解释得很清楚。我理解你将代码分成不同部分的意思,例如has、setup/run/win/lose。您可以将其分解为需要在函数中一起运行的代码片段,以便以后可以调用这些函数。在我的代码中,我在onkeyup函数下一次运行了它。这是非常有用的!