我正在使用code.org
javascript库。我正在尝试拥有它,以便在达到 3 个出局后根据选择的两个团队更换团队。我尝试声明team1
和team2
并将它们设置为等于选中但无法正常工作的复选框。
标签上的团队名称不会像首次选择团队时那样更改。我不太确定该怎么做,但主要目标是在当前球队出局 3 次时更改球队名称。球员选择功能中有一个标签正在使用,用于显示所选的第一支球队。
var outs = 0;
var team1 = "";
var team2 = "";
var strikes = 0;
var balls = 0;
var fouls = 0;
var inning = 0;
var hit = 0;
var currentPlayer = team1, team2;
//Player Selection
onEvent("btnStart","click", function() {
var chkBoxs = ["Yankees", "Boston", "Astros"];
var selected = [];
for (var index = 0; selected.length < 2 && index < chkBoxs.length; index++) {
if (getChecked(chkBoxs[index])) { selected.push(index); }
}
setScreen("game");
if (selected.length == 2) {
console.log("The Teams are: " + chkBoxs[selected[0]] + " and " + chkBoxs[selected[1]]);
}
if (chkBoxs[selected[0]]) {
setText("lblTeamGame",chkBoxs[selected[0]]);
team1 = chkBoxs[selected[0]];
team2 = chkBoxs[selected[1]];
} else {
setText("lblTeamGame",chkBoxs[selected[1]]);
}
});
//Pitching Rules
function Count() {
if (balls == 4)
{
console.log("Walk");
setText("lblBallCount", 0);
setText("lblStrikeCount", 0);
balls = 0;
strikes = 0;
}
if (strikes == 3)
{
console.log("Strike Out");
outs++;
setText("lblStrikeCount", 0);
setText("lblOutCount", outs);
setText("lblBallCount", 0);
strikes = 0;
balls = 0;
}
if (outs == 3)
{
inning++;
setText("lblInningCount", inning);
switchPlayer();
}
if(hit)
{
setText("lblStrikeCount", 0);
setText("lblBallCount", 0);
strikes = 0;
balls = 0;
}
}
//Switch Teams
function switchPlayer() {
if(currentPlayer == team1) {
currentPlayer = team2;
showElement("player2_highlight");
hideElement("player1_highlight");
} else {
showElement("player1_highlight");
hideElement("player2_highlight");
currentPlayer = 1;
}
console.log("current player is: " + currentPlayer);
}
这可能是您的问题:
function switchPlayer(){
if(currentPlayer==team1){
currentPlayer=team2;
showElement("player2_highlight");
hideElement("player1_highlight");
} else {
showElement("player1_highlight");
hideElement("player2_highlight");
currentPlayer=team1; // Specify team1 instead of just 1
}
console.log("current player is: "+currentPlayer);
}
此外,切换团队后,您需要重置出局次数。
if(outs==3)
{
inning++;
setText("lblInningCount",inning);
switchPlayer();
outs=0;
}