Javascript 在满足赢/输条件后,游戏将不会重置

Javascript 在满足赢/输条件后,游戏将不会重置,javascript,jquery,Javascript,Jquery,我正在制作一个onclick游戏,随机生成一个要到达的数字,并为每个要单击的对象随机生成一个数字。我可以让一切正常,但不能让游戏复位 我尝试了多种不同的功能,并将它们移动和嵌套。我是新来的,所以我觉得我的功能很弱,需要更多的工作 function startgame(){ let randomNumer = 50 + Math.floor(Math.random() * 500); console.log(randomNumer); let crystalOne = 5 + Ma

我正在制作一个onclick游戏,随机生成一个要到达的数字,并为每个要单击的对象随机生成一个数字。我可以让一切正常,但不能让游戏复位

我尝试了多种不同的功能,并将它们移动和嵌套。我是新来的,所以我觉得我的功能很弱,需要更多的工作

function startgame(){

  let randomNumer = 50 + Math.floor(Math.random() * 500);
  console.log(randomNumer);

  let crystalOne = 5 + Math.floor(Math.random() * 20);
  console.log(crystalOne);

  let crystalTwo = 8 + Math.floor(Math.random() * 12);
  console.log(crystalTwo);

  let crystalThree = 1 + Math.floor(Math.random() * 22);
  console.log(crystalThree);

  let crystalFour = 20 + Math.floor(Math.random() * 50);
  console.log(crystalFour);

  let wins = 0;
  let losses = 0;
  let score = 0;
  let counter = 0;



  $(".randomnumber").text(randomNumer);


  $("#crystalone").on("click", function () {
    counter + crystalOne;
    $(".score").text(counter += crystalOne);
    $("#firstcrystal").text(crystalOne);
    checker();
  });
  $("#crystaltwo").on("click", function () {
    counter + crystalTwo;
    $(".score").text(counter += crystalTwo);
    $("#secondcrystal").text(crystalTwo);
    checker();
  });
  $("#crystalthree").on("click", function () {
    counter + crystalThree;
    $(".score").text(counter += crystalThree);
    $("#thirdcrystal").text(crystalThree);
    checker();
  });
  $("#crystalfour").on("click", function () {
    counter + crystalFour;
    $(".score").text(counter += crystalFour);
    $("#fourthcrystal").text(crystalFour);
    checker();
  });
  function checker() {

    if (counter > randomNumer) {
        losses++;
        $("#losses").append(losses);
        reset();
        // startgame();
    }


    if (counter === randomNumer) {
        wins++;
        $("#wins").append(wins);
        reset();
        // startgame();
    }

  };

};


startgame();


function reset() {

    let randomNumer = 1 + Math.floor(Math.random() * 500);
    console.log(randomNumer);

    let crystalOne = 5 + Math.floor(Math.random() * 20);
    console.log(crystalOne);

    let crystalTwo = 8 + Math.floor(Math.random() * 12);
    console.log(crystalTwo);

    let crystalThree = 1 + Math.floor(Math.random() * 22);
    console.log(crystalThree);

    let crystalFour = 20 + Math.floor(Math.random() * 50);
    console.log(crystalFour);


    $(".randomnumber").on("click").text(randomNumer);
    startgame();

};

游戏工作并记录赢和输,但不重置。

重置中的变量不做任何事情,因为它们是重置功能的本地变量,在启动名中不可见

另外,
randomNumer
reset
中不可见

添加到
startName

$(".score").text('0');

此外,您还可以完全放弃重置功能,因为它除了调用startName之外没有任何用处,而是在调用reset之前在checker中调用startName。

Hi Skinnymedic,欢迎使用StackOverflow!您可以在您的
重置
功能中发布您遇到问题的代码吗?可以。我以为它在那里,对不起。我修正了原来的帖子,包括重置