当前位置: 首页 > 知识库问答 >
问题:

如何将掷出的两个骰子的值相加

商燕七
2023-03-14

我正在做一个骰子游戏,我想在初始掷骰时显示两个骰子相加的值。

我如何实现这一目标?现在它只显示两个数字在一起,我不确定应该将其设置为什么,以便显示两个骰子的附加掷骰值。我有接线员:

让rollpt=(dice1 dice2);document.getElementById("点"). innerHTML="第一个滚动点:"rollpt;

例如,dice1掷3,dice2掷6,我希望javascript计算36,并将初始“第一掷点数”显示为9,然后将计算值附加到我想要的位置。我可以在控制台中看到每个骰子都在掷什么。

密码笔: https://codepen.io/williamsrashon/pen/PoGEgQB?editors=1111

<link rel ="stylesheet" href ="craps.css">
<link rel = "stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.1/css/all.min.css">
<div class ="buttons">
  <button class = "btn" id="btn"> Roll Dice </button>
  <button class = "btn"> Place Bet </button>
</div>

 <div class = "points">
   <h1 id ="points"> 1st Roll Points:  </h1>
</div>

<main>
  <div class = "container">
  <div class ="dice" id="dice">
    <div class = "cube" id="results">
    
    <i id = "dice1" class="die dice1 fas fa-dice-one"></i>

    <i id ="dice2" class="die dice2 fas fa-dice-two"></i>
    
  </div>
    </div>
    </div>

脚本

    let btn = document.getElementById("btn");
    let dice = document.querySelectorAll("dice");
    let results = document.querySelectorAll("results");
    
let diceArr1 = ['1', '2', '3', '4', '5', '6'];

let diceArr2 = ['1', '2', '3', '4', '5', '6'];
        
    
    btn.addEventListener('click', function(){
    
    let diceRandom1 = Math.floor(Math.random() * diceArr1.length);
      
    let diceRandom2 = Math.floor(Math.random() * diceArr2.length);
      
      let dice1 = diceArr1[diceRandom1];
      
      let dice2 = diceArr2[diceRandom2];
      
      console.log(dice1,dice2);
      
      
   let rollpts = (dice1 + dice2);
   document.getElementById("points").innerHTML = "1st Roll Points:"+ + + rollpts;

   return false;
     
    })

共有3个答案

弓宏茂
2023-03-14

您正在连接字符串,而不是添加整数。一种解决方案可能是使用 parseInt 将整数类型化为字符串,如下所示:让 rollpts = (parseInt(dice1, 10) parseInt(dice2, 10)); 或者简单地在数组中使用整数。

但是,更好的解决方案可能是生成1到6之间的随机整数,如下所示:< code > math . floor(math . random()* 6)1 并放弃所有数组。

朱经武
2023-03-14

原因是你加了两个字符串数:三个六,所以结果是NaN。

不是从数组中取数字,而是直接从随机数中取,这将解决问题

let dice1 = diceRandom1 + 1; 
let dice2 = diceRandom2 + 1; 
邹胜泫
2023-03-14

数组中的数字是字符串,需要将它们解析为数字。您可以使用parseInt()

更改这一行:let-rollpts=(parseInt(dice1)parseInt(dice2))

或者,可以将数组中的值更改为数字而不是字符串:

let diceArr1 = [1, 2, 3, 4, 5, 6];

let diceArr2 = [1, 2, 3, 4, 5, 6];

不同之处在于,当您对字符串使用< code> 运算符时,它会将两个字符串连接起来:

console.log('strings: ' + ('6' + '3'));
console.log('numbers: ' + (6 + 3));
 类似资料:
  • 我正在用java创建一个掷骰子的应用程序。我有一个掷骰子的“骰子”类,和一个使用“骰子”的多个实例变量的“骰子”类。但是,它只为我的值返回0。骰子类本身可以工作,并且会掷出一个随机数,但是我不知道如何在我的“骰子”类中得到多个掷骰子。感谢任何帮助。 骰子类 模具等级

  • 我是一个C++初学者,我需要创建一个骰子游戏模拟掷两个骰子。我对头文件的使用感到很困惑。但首先,为什么我需要返回骰子的票面号码?其次,int roll函数做什么?来重置价值观和面孔?如果是,默认值是多少?而最后一个函数骰子(int n),我是否使用这个函数来控制骰子值的最大总和?函数必须有一个具有以下函数的类头文件:

  • 我试图为一个游戏的掷骰子程序,其中用户输入一个下注金额和2个六面骰子滚动,如果7或11是滚动,他们赢了。如果掷2,3或12就输了,如果掷其他任何一个数字,它就显示该数字为一个点。它会继续掷骰子,直到掷7或该点为止,如果掷7就输了,否则就赢了。出于某种原因,在掷骰子时,他会掷骰子,然后再掷一次,看看他们是否赢了或输了。我不知道如何解决这个问题,任何帮助都不会附带

  • 你好堆栈溢出,我有一个小问题与这个程序。我正在尝试制作一个程序来掷四个骰子并将三个最高的掷骰子加在一起,然后打印这三个掷骰子中最低的一个。我犯了一个错误,就是把三个最高的卷子加在一起,然后打印出四个卷子中最低的一个。 我如何解决这个问题?我在谷歌上搜索了很多,想知道如何使用列表和集合,但我找不到任何可以解决这个问题的东西。 此外,我如何才能迫使用户选择一个集合并重新滚动该集合? 基本上,我想做的是

  • 代码的目的是让两个玩家掷一对骰子。第一个掷出20分的玩家赢得比赛。我很难弄清楚如何正确地跟踪滚动的总和;它只给我当前回合的总和,然后当每个玩家滚动10次时游戏就结束了。 我如何正确地计算每个玩家游戏的总和,然后当其中一个玩家的总和等于20时停止循环?