gpt4 book ai didi

javascript - 如何在不重置分数的情况下重置刽子手游戏?

转载 作者:行者123 更新时间:2023-12-03 00:32:47 25 4
gpt4 key购买 nike

我正在制作这个刽子手游戏,但我无法让“损失”/“胜利”计数器发挥作用。

看来我有损失计数器可以工作,但猜测的数量会变成负数。它将把比赛计为失败,但不会重置。

当我设置获胜计数时,它会计算每个用户的点击而不是整个单词。到目前为止,我在游戏中所做的一切尝试都失败了。

如何在有人输或赢后重置游戏并保持分数?

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);

};

最佳答案

您遇到麻烦的根本原因似乎是游戏刚开始就没有真正的设置、获胜或失败的概念。

因此,当您跟踪猜测的状态时,您并没有跟踪游戏本身的状态。

我建议将代码分成几个部分:

  1. 设置
  2. 初始化
  3. 运行/循环
  4. 游戏结束

设置阶段应设置用户界面、按键处理程序等。

初始化开始游戏(选择一个随机单词,将猜测次数设置为您想要的,等等)

运行/循环只会等待您的输入并跟踪游戏的状态。如果发生情况,则应相应结束游戏。

到达游戏结束时,您可以通过返回初始化阶段来重置/重新启动游戏。

如果您将代码放入函数 setup()initialize()run()win( )/lose(),当你想要/需要切换游戏状态时,可以调用这些函数。

更新: A solution for your hangman game (and some fixes)

关于javascript - 如何在不重置分数的情况下重置刽子手游戏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53785757/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com