为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

隔江千里 2021-06-15 17:19:01
我创建了一个游戏,它将在屏幕上显示得分最高的获胜者。一号和二号玩家有两个按钮。用户将按照设定的分数玩游戏。例如,如果游戏设置为 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}`;         }    }});
查看完整描述

1 回答

?
MM们

TA贡献1886条经验 获得超2个赞

对于两个玩家,您需要切换。这可以是来自页面 DOM 中隐藏字段的值,或者只是一个JS变量,只要页面没有刷新。或者更进一步,您可以跟踪服务器上的轮次,但这现在听起来太先进了。


切换可以基于偶数/奇数计算,或者只是一个 if 语句。就像是:


    if(turn==0){turn=1}else{turn=0}

上面这行就像一个on/off开关,是轮到off,玩家1可以玩,他/她的动作会转on。当开关为onplayer2 时可以播放,他/她的动作会off再次转动它。


或者如果您有两个以上的玩家


    turn++; // before turn increase by 1 each time


    // do everything here for the current player


    if(turn >= countPlayers()){turn=0} // reset to 0 after the last player

在这个概念中,没有值 0,因为我们在第一个回合之前从 1 开始使用 ++,然后每次玩家做某事时增加回合,直到玩家总数已经玩完,然后重置回 0。


如果您只有两个玩家,偶数/奇数计算是切换的简单替代方法。由于您已经在跟踪已玩的总回合数,因此不需要额外的变量。


    function checkOdd(int){

      return int % 2;

    }


    if(checkOdd(turnTacker)){

      // player2 has to play

    }else{

      // player1 has to play

    };


如果turnTacker是0checkOdd 是FALSE,如果turnTacker是1checkOdd 是TRUE,如果turnTacker是2checkOdd 是FALSE,等等。


查看完整回答
反对 回复 2021-06-24
  • 1 回答
  • 0 关注
  • 120 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信