我的 js 代码有一个问题,我希望我的数组的值在循环中等于 0,但相反,它每次循环时都会相互叠加或减去。
for(i = 0; i < num_players; i++) {
alert(players[i] + " Score is " + player_scores[i]);
}
我的 js 代码有一个问题,我希望我的数组的值在循环中等于 0,但相反,它每次循环时都会相互叠加或减去。
for(i = 0; i < num_players; i++) {
alert(players[i] + " Score is " + player_scores[i]);
}
数组使用有很多问题。这是一个可行的解决方案,我也添加了一些小的改进:
var players = [];
var player_scores = [];
var num_players = 0;
num_players = prompt ("Tell me the total number of players");
for(i=0; i < num_players; i++){
players.push(prompt("Tell me name: "));
player_scores.push(0);
var start_time = new Date();
start_time.setSeconds(start_time.getSeconds() + 10 );
for (lives=3; lives>0; lives--) {
var guess = prompt("K _ _ G");
var current_time = new Date();
if (guess.toUpperCase() === "KING" && current_time < start_time) {
alert ("Guess was correct");
player_scores[i] += 5;
break;
} else if(guess.toUpperCase() === "HINT" && current_time < start_time) {
alert ("GIVE HINT HERE");
lives++;
alert ("You have " + (lives-1) + " lives left");
} else if(current_time >= start_time) {
alert ("Time ran out");
lives = 0;
} else {
alert ("Guess was wrong");
player_scores[i] -= 2;
alert ("You have " + (lives-1) + " lives left");
}
}
alert("Player " + players[i] + "'s final score is " + player_scores[i]);
}
for(i = 0; i < num_players; i++) {
alert(players[i] + " Score is " + player_scores[i]);
}
您需要初始化player_scores[i] = 0;,并且必须为玩家 i 而不是玩家 0 添加/减去分数:player_scores[i] = player_scores[i] - 2;
这有效:
var players = [];
var player_score = [];
var player_scores = [0];
// CHANGE THE VARIABLES //
var num_players = 0;
while (num_players <= 0) {
num_players = prompt ("Tell me the total number of players");
}
for(i=0; i < num_players; i++) {
players[i] = prompt("Tell me name: ");
player_scores[i] = 0;
start_time = new Date();
start_time.setSeconds(start_time.getSeconds() + 10 );
for (lives=3; lives>0; lives--) {
guess = prompt("K _ _ G");
current_time = new Date();
if (guess == "KING" || guess == "king" && current_time < start_time) {
alert ("Guess was correct");
player_scores[i] = player_scores[i] + 5;
break;
}
else if (guess == "HINT" || guess == "hint" && current_time < start_time) {
alert ("GIVE HINT HERE");
lives = lives + 1;
alert ("You have " + (lives-1) + " lives left");
}
else if (current_time >= start_time ) {
alert ("Time ran out");
lives = 1;
}
else {
alert ("Guess was wrong");
player_scores[i] = player_scores[i] - 2;
alert ("You have " + (lives-1) + " lives left");
}
}
alert("Player " + players[i] + "'s final score is " + player_scores[i]);
}
for(i = 0; i < num_players; i++) {
alert(players[i] + " Score is " + player_scores[i]);
}