0

出于某种原因,在用户猜对了数字并按照确认再次玩游戏但猜测次数较少(比原来少 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();
        }
    }
4

1 回答 1

0

在获得正确的数字后,您不会将计数器重置jlowerGuesses

代码很难理解,而且 IMO 有点破。事情需要更好地解决。当实际上有新游戏时,将“新游戏”代码隔离为您调用的代码。创建一个新的随机数。清除它记住的数字;在我修复它之后它再次是相同的数字(可能但不太可能,所以我假设逻辑也被破坏了)所以它都警告我我已经猜到了这个数字,告诉我我猜对了这个数字。

基本上,您的游戏循环应该只用于游戏,而不是用于准备新游戏等。考虑将玩家应该进入函数的猜测次数传递给newGame函数(以及许多其他重构)。

于 2012-12-27T00:26:32.050 回答