#jquery #html #css #function #loops
#jquery #HTML #css #функция #циклы
Вопрос:
Моя проблема с моим кодом заключается в том, что когда пользователь выигрывает / или проигрывает, это ставит точку, но после первого выигрыша / проигрыша каждый выбор кристалла автоматически регистрируется как проигрыш. Я не уверен, допустил ли я ошибку в своем цикле, или, может быть, в моем коде просто есть информация, которую не следует повторять? Есть идеи относительно того, что я должен исследовать?
$(document).ready(function () {
//Set up variables
var generatedNum = "";
var wins = 0;
var losses = 0;
var crystalNum1 = "";
var crystalNum2 = "";
var crystalNum3 = "";
var crystalNum4 = "";
var totalScore = 0;
var crystalNum1 = Math.floor((Math.random() * 12) 1);
var crystalNum2 = Math.floor((Math.random() * 12) 1);
var crystalNum3 = Math.floor((Math.random() * 12) 1);
var crystalNum4 = Math.floor((Math.random() * 12) 1);
var generatedNum = Math.floor((Math.random() * 120) 19);
console.log(generatedNum);
$(".generatedNum").text(generatedNum);
$(".wins").text("Wins: " wins);
$(".losses").text("Losses: " losses);
function initializeGame() {
var crystalNum1 = Math.floor((Math.random() * 12) 1);
var crystalNum2 = Math.floor((Math.random() * 12) 1);
var crystalNum3 = Math.floor((Math.random() * 12) 1);
var crystalNum4 = Math.floor((Math.random() * 12) 1);
var generatedNum = Math.floor((Math.random() * 120) 19);
$(".generatedNum").text(generatedNum);
var totalScore = 0;
$(".totalScore").text(totalScore);
}
// wins { totalScore === generatedNum}
function win() {
wins ;
$(".wins").text("Wins: " wins);
initializeGame();
}
// losses {totalScore > generatedNum}
function loss() {
losses ;
$(".losses").text("Losses: " losses);
initializeGame();
}
$(".crystal1").click(function () {
totalScore = totalScore crystalNum1;
console.log(" New totalScore= " totalScore);
$(".totalScore").text(totalScore);
if (totalScore === generatedNum) {
win();
} else if (totalScore > generatedNum) {
loss();
}
});
$(".crystal2").click(function () {
totalScore = totalScore crystalNum2;
console.log(" New totalScore= " totalScore);
$(".totalScore").text(totalScore);
if (totalScore === generatedNum) {
win();
} else if (totalScore > generatedNum) {
loss();
}
});
$(".crystal3").click(function () {
totalScore = totalScore crystalNum3;
console.log(" New totalScore= " totalScore);
$(".totalScore").text(totalScore);
if (totalScore === generatedNum) {
win();
} else if (totalScore > generatedNum) {
loss();
}
});
$(".crystal4").click(function () {
totalScore = totalScore crystalNum4;
console.log(" New totalScore= " totalScore);
$(".totalScore").text(totalScore);
if (totalScore === generatedNum) {
win();
} else if (totalScore > generatedNum) {
loss();
}
});
});
Ответ №1:
Итак, я наконец понял свою ошибку, я называю свои элементы и переменные одинаковыми именами, поэтому вместо того, чтобы моя игра возвращала новое сгенерированное число и новый общий балл, она сохраняла одинаковые значения для каждого и просто продолжала увеличивать проигрыш
$(document).ready(function () {
//Set up variables
var wins = 0;
var losses = 0;
var newtotalScore = 0;
$(".wins").text("Wins: " wins);
$(".losses").text("Losses: " losses);
var newgeneratedNum = Math.floor((Math.random() * 101) 19);
$(".generatedNum").text(newgeneratedNum);
//console.log(generatedNum);
var crystalNum1 = Math.floor((Math.random() * 12) 1);
var crystalNum2 = Math.floor((Math.random() * 12) 1);
var crystalNum3 = Math.floor((Math.random() * 12) 1);
var crystalNum4 = Math.floor((Math.random() * 12) 1);
function initializeGame() {
newgeneratedNum = Math.floor((Math.random() * 120) 19);
$(".generatedNum").text(newgeneratedNum);
crystalNum1 = Math.floor((Math.random() * 12) 1);
crystalNum2 = Math.floor((Math.random() * 12) 1);
crystalNum3 = Math.floor((Math.random() * 12) 1);
crystalNum4 = Math.floor((Math.random() * 12) 1);
newtotalScore = 0;
$(".totalScore").text(newtotalScore);
}
// wins { totalScore === newgeneratedNum}
function win() {
wins ;
$(".wins").text("Wins: " wins);
initializeGame();
}
// losses {totalScore > newgeneratedNum}
function loss() {
losses ;
$(".losses").text("Losses: " losses);
initializeGame();
}
//on click function for crystals
$(".crystal1").click(function () {
newtotalScore = newtotalScore crystalNum1;
console.log(" New totalScore= " newtotalScore);
$(".totalScore").text(newtotalScore);
if (newtotalScore === newgeneratedNum) {
win();
} else if (newtotalScore > newgeneratedNum) {
loss();
}
});
$(".crystal2").click(function () {
newtotalScore = newtotalScore crystalNum2;
console.log(" New totalScore= " newtotalScore);
$(".totalScore").text(newtotalScore);
if (newtotalScore === newgeneratedNum) {
win();
} else if (newtotalScore > newgeneratedNum) {
loss();
}
});
$(".crystal3").click(function () {
newtotalScore = newtotalScore crystalNum3;
console.log(" New totalScore= " newtotalScore);
$(".totalScore").text(newtotalScore);
if (newtotalScore === newgeneratedNum) {
win();
} else if (newtotalScore > newgeneratedNum) {
loss();
}
});
$(".crystal4").click(function () {
newtotalScore = newtotalScore crystalNum4;
console.log(" New totalScore= " newtotalScore);
$(".totalScore").text(newtotalScore);
if (newtotalScore === newgeneratedNum) {
win();
} else if (newtotalScore > newgeneratedNum) {
loss();
}
});
});