我如何跟踪玩家在游戏中的轮次?

我创建了一个游戏,它将在屏幕上显示得分最高的获胜者。一号和二号玩家有两个按钮。用户将按照设定的分数玩游戏。例如,如果游戏设置为 5,用户将同时点击两个按钮,直到按钮一或按钮二达到 5 的获胜分数。标题可以显示“祝贺玩家 1 以 5 比 4 获胜”。玩家应该不能一直点击一个按钮来达到 5 的获胜分数。但是,我如何跟踪玩家在游戏中的轮次?下面是代码:


score.html file:


<!DOCTYPE html>

<html>

<head>

    <meta charset="UTF-8">

    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <meta http-equiv="X-UA-Compatible" content="ie=edge">

    <title>score</title>

    <link rel="stylesheet" href="score.css">

</head>

<body>

 <h1> <span id="p1Display" > <span id="player1Win"></span> 0</span> to <span id="p2Display">0</span></h1> 


 <p>Play to: <span>5</span> </p>


 <input type="number">

 <button id="p1">Player one</button>

 <button id="p2">Player two</button>

 <button id="reset">Reset</button>



    <script src="score.js"></script>

</body>

</html>

score.js file:


p1Button.addEventListener("click", function () {

    if (!gameOver) {

        if(turnTacker == 0) {

            turnTacker = 1;

            p1Score++;

        }else {

            turnTacker = 0;

            p2Score++;

        }


        if (p1Score === winningscore) {

            p1Display.classList.add("winner");

            gameOver = true; //stop adding to score

        }

        p1Display.textContent = p1Score;


        if (gameOver ) {

            p1Display.textContent = `congratulations Player 1 win score of ${p1Score}`; 

        }



    }

});


p2Button.addEventListener("click", function () {

   if (!gameOver) {

        if(turnTacker == 0) {

            turnTacker = 1;

            p2Score++;

        }else {

            turnTacker = 0;

            p1Score++;

        }


        if (p2Score === winningscore) {

            p2Display.classList.add("winner");

            gameOver = true; //stop adding to score

        }

        p2Display.textContent = p2Score;


        if (gameOver ) {

            p2Display.textContent = `congratulations Player 2 win score of ${p2Score}`; 

        }



    }

});


隔江千里
浏览 122回答 1
1回答

MM们

对于两个玩家,您需要切换。这可以是来自页面 DOM 中隐藏字段的值,或者只是一个JS变量,只要页面没有刷新。或者更进一步,您可以跟踪服务器上的轮次,但这现在听起来太先进了。切换可以基于偶数/奇数计算,或者只是一个 if 语句。就像是:&nbsp; &nbsp; if(turn==0){turn=1}else{turn=0}上面这行就像一个on/off开关,是轮到off,玩家1可以玩,他/她的动作会转on。当开关为onplayer2 时可以播放,他/她的动作会off再次转动它。或者如果您有两个以上的玩家&nbsp; &nbsp; turn++; // before turn increase by 1 each time&nbsp; &nbsp; // do everything here for the current player&nbsp; &nbsp; if(turn >= countPlayers()){turn=0} // reset to 0 after the last player在这个概念中,没有值 0,因为我们在第一个回合之前从 1 开始使用 ++,然后每次玩家做某事时增加回合,直到玩家总数已经玩完,然后重置回 0。如果您只有两个玩家,偶数/奇数计算是切换的简单替代方法。由于您已经在跟踪已玩的总回合数,因此不需要额外的变量。&nbsp; &nbsp; function checkOdd(int){&nbsp; &nbsp; &nbsp; return int % 2;&nbsp; &nbsp; }&nbsp; &nbsp; if(checkOdd(turnTacker)){&nbsp; &nbsp; &nbsp; // player2 has to play&nbsp; &nbsp; }else{&nbsp; &nbsp; &nbsp; // player1 has to play&nbsp; &nbsp; };如果turnTacker是0checkOdd 是FALSE,如果turnTacker是1checkOdd 是TRUE,如果turnTacker是2checkOdd 是FALSE,等等。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript