由于某种原因,在用户猜出正确的号码并且在确认之后再次玩游戏但是猜测较少(比原来少2),每当用户猜出一个数字时,剩余的猜测被扣除2,有时只是随机数而不是通常的1.我尝试更改代码以各种不同的方式扣除,但无济于事:
j--;
j -= 1;
j = j - 1;
Fiddle中的完整代码,如果有人可以提供帮助那就太棒了我已经在这几个小时了!感谢
部分猜测按钮点击事件
if (currentGuess < numberToGuess) {
$hintBox.html('<p class="blue">Try higher</p>');
} else {
$hintBox.html('<p class="blue">Go lower</p>');
}
j = j - 1;
$('.numberGuesses').html(j);
} // end of if guess is not correct
else if (currentGuess === numberToGuess) {
alert('Well done the correct number was '+ numberToGuess);
var playAgain = confirm("Let's see if you can do that again with less guesses.");
if (playAgain){
$('#gameDiv').hide('pulsate', 100, function(){
$('#mode').delay(200).show('pulsate', 500);
});
lowerGuesses = lowerGuesses - 2;
$('.numberGuesses').html(lowerGuesses);
} else {
location.reload();
}
}
答案 0 :(得分:0)
在您获得正确的号码后,您不会将计数器j
重置为lowerGuesses
。
代码很难遵循,IMO有点破碎。事情需要更好地分解。将“新游戏”代码隔离成实际上有新游戏时调用的内容。创建一个新的随机数。清除它记得的数字;在我修复它之后它再次是相同的数字(可能但不太可能,所以我假设逻辑也被打破)所以它都警告我,我已经猜到了数字,和告诉我我猜对了这个号码。
基本上你的游戏循环应仅适用于游戏,而不是用于准备新游戏等。考虑传递玩家应该进入newGame
函数的猜测次数(以及许多其他重构)。