首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >HTML & Javascript 21点游戏不会显示胜利者和手

HTML & Javascript 21点游戏不会显示胜利者和手
EN

Stack Overflow用户
提问于 2017-09-18 09:32:52
回答 1查看 143关注 0票数 0

我正在尝试使用JavaScript和HTML开发一个21点游戏。

我在REPL上单独使用JavaScript测试了它,它运行得很好,现在我尝试将它移到html页面,以便我最终可以添加一些图形。

然而,当我运行下面的代码时,没有一个玩家的手,房子的手或胜利者出现在屏幕上,但是提示会出现。

有人能看出这有什么问题吗?

代码语言:javascript
复制
function play() {
  playersQ = prompt('How many people are playing?');
  playershands = [];
  i = 0;
  count = 0;
  var player_cards = 0;

  function player() {
    var player_cards = Math.floor(Math.random() * 21) + 1;
    while (player_cards < 21) {
      Hit = prompt('Players cards are ' + player_cards + ' Would you like stick or twist?(S/T)')
      if (Hit == 'T') {
        player_cards = player_cards + Math.floor(Math.random() * 11) + 1;
      } else if (Hit == 'S') {
        break;
      } else if (player_cards > 21) {
        alert('Player is bust');
        break;
      }
    }
    return player_cards;
  }

  function house() {
    var house_cards = Math.floor(Math.random() * 21) + 1;
    document.getElementById('housecurrenthand').innerHTML = ('House has ' + house_cards);
    while (house_cards < 18) {
      house_cards = house_cards + Math.floor(Math.random() * 11);
      document.getElementById('housecurrenthand').innerHTML = ('House has ' + house_cards);
      if (house_cards > 21) {
        alert('House is bust')
      }
    }
    return house_cards;
  }

  while (i < playersQ) {
    playershands.push(player());
    i = i + 1;
  }

  var house_hand = house();

  while (count < playersQ) {
    count2 = count + 1
    if (playershands[count] > house_hand && playershands[count] < 22) {
      document.getElementById('playershand' + [i]).innerHTML = ('Player ' + count2 + ' has ' + playershands[count]);
      document.getElementById('winner').innerHTML = ('Player wins');
      count = count + 1;
    } else if (house_hand > playershands[count] && house_hand < 22) {
      document.getElementById('househand').innerHTML = ('House has' + house_hand);
      document.getElementById('winner').innerHTML = ('House wins');
      break;
    } else if (house_hand == playershands[count]) {
      document.getElementById('winner').innerHTML = ('draw');
      break;
    }
  }
}
代码语言:javascript
复制
<head>
  <h1 align="center">21 Game</h1>
</head>

<body bgcolor="#458B00">
  <div align='center'>
    <h3>House Cards</h3>
    <h5 id='currenthousehand'></h5>
    <h5 id='househand'> </h5>

    <h3>Players Cards</h3>
    <h5 id='playershand1'> </h5>
    <h5 id='playershand2'> </h5>
    <h5 id='playershand3'> </h5>
    <h5 id='playershand4'> </h5>
    <h5 id='playershand5'> </h5>
    <h5 id='playershand6'> </h5>
    <h5 id='playershand7'> </h5>
    <h5 id='playershand8'> </h5>
    <h5 id='playershand9'> </h5>
    <h5 id='playershand10'> </h5>

    <h4 id='winner'> </h4>

    <button onclick="play()" float='bottom'>Play</button>
  </div>
</body>

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-09-18 09:42:38

您正试图在第66行(function )中使用ID housecurrenthand来达到DOM元素的值,但是在您的html文件中,您已经用ID currenthousehand声明了头(第12行)。

如果你不使用谷歌Chrome,我鼓励你尝试一下。当您按下F12时,会有开发人员工具帮助您找出问题所在。

查看Google Chrome的官方文档,其中有很多关于如何调试web代码的信息。如果您正在使用任何其他浏览器,只需查找文档或教程,如何处理当前的问题。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46276018

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档