我正在制作一个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();
};
游戏有效,并记录了获胜和失败,但不会重置。
答案 0 :(得分:1)
reset
中的变量没有任何作用,因为它们是重置功能的局部变量,在startgame
中不可见
此外,randomNumer
在reset
中不可见。
添加到startgame
:
$(".score").text('0');
此外,您还可以完全删除reset函数,因为它除了调用startgame之外没有任何其他作用,而是在您调用reset之前的checker中调用startgame。