- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在编写一个骰子模拟程序,但是我对结果有疑问,因为它只打印:
You rolled a ...1 and 1
You rolled double ones 0 out of 10000 rolls.
You rolled double twos 0 out of 10000 rolls.
You rolled double threes 0 out of 10000 rolls.
You rolled double fours 0 out of 10000 rolls.
You rolled double fives 0 out of 10000 rolls.
You rolled double sixes 0 out of 10000 rolls.
它总是打印这个,我不明白为什么,因为它每次应该打印不同的数字。
public class Dice
{
private int die1;
private int die2;
public Dice()
{
die1 = 1;
die2 = 1;
}
public void rollDice()
{
Random myRan = new Random();
die1 = myRan.nextInt(6) + 1;
die2 = myRan.nextInt(6) + 1;
}
public int getDie1()
{
return die1;
}
public int getDie2()
{
return die2;
}
public String toString()
{
return "You rolled a ..." + die1 + " and " + die2 + "\n"; }
}
还有...
import java.util.Random;
public class DiceSimulation
{
static final int NUMBER = 10000;
static Random generator = new Random();
static int die1Value;
static int die2Value;
static int count = 0;
static int ones = 0;
static int twos = 0;
static int threes = 0;
static int fours = 0;
static int fives = 0;
static int sixes = 0;
static int c=1;
public static void main(String[] args)
{
rollDiceAndTabulateWhile();
rollDiceAndTabulteDoWhile();
rollDiceAndTabulteFor();
summarizeResults();
}
public static void rollDiceAndTabulateWhile()
{
Dice d = new Dice();
while(c<= NUMBER)
{
d.rollDice();
die1Value = d.getDie1();
die2Value = d.getDie2();
if(die1Value == die2Value)
count++;
else if(die1Value == 1 && die2Value == 1)
ones++;
else if(die1Value == 2 && die2Value == 2)
twos++;
else if(die1Value == 3 && die2Value == 3)
threes++;
else if(die1Value == 4 && die2Value == 4)
fours++;
else if(die1Value == 5 && die2Value == 5)
fives++;
else if(die1Value == 6 && die2Value == 6)
sixes++;
c++;
}
}
public static void rollDiceAndTabulteDoWhile()
{
DiceSimulation dw = new DiceSimulation();
Dice d = new Dice();
do
{
d.rollDice();
dw.die1Value = d.getDie1();
dw.die2Value = d.getDie2();
if(die1Value == die2Value)
count++;
else if(dw.die1Value == 1 && dw.die2Value == 1)
ones++;
else if(dw.die1Value == 2 && dw.die2Value == 2)
twos++;
else if(dw.die1Value == 3 && dw.die2Value == 3)
threes++;
else if(dw.die1Value == 4 && dw.die2Value == 4)
fours++;
else if(dw.die1Value == 5 && dw.die2Value == 5)
fives++;
else if(dw.die1Value == 6 && dw.die2Value == 6)
sixes++;
c++;
} while(c <= NUMBER);
}
public static void rollDiceAndTabulteFor()
{
DiceSimulation dw = new DiceSimulation();
Dice d = new Dice();
for(c=1;c<=NUMBER;c++)
{
d.rollDice();
dw.die1Value = d.getDie1();
dw.die2Value = d.getDie2();
if(die1Value == die2Value)
count++;
else if(dw.die1Value == 1 && dw.die2Value == 1)
ones++;
else if(dw.die1Value == 2 && dw.die2Value == 2)
twos++;
else if(dw.die1Value == 3 && dw.die2Value == 3)
threes++;
else if(dw.die1Value == 4 && dw.die2Value == 4)
fours++;
else if(dw.die1Value == 5 && dw.die2Value == 5)
fives++;
else if(dw.die1Value == 6 && dw.die2Value == 6)
sixes++;
}
}
public static void summarizeResults()
{
Dice d = new Dice();
System.out.println(d.toString());
System.out.println("You rolled double ones " + ones
+ " out of " + NUMBER + " rolls.");
System.out.println("You rolled double twos " + twos
+ " out of " + NUMBER + " rolls.");
System.out.println("You rolled double threes " + threes
+ " out of " + NUMBER + " rolls.");
System.out.println("You rolled double fours " + fours
+ " out of " + NUMBER + " rolls.");
System.out.println("You rolled double fives " + fives
+ " out of " + NUMBER + " rolls.");
System.out.println("You rolled double sixes " + sixes
+ " out of " + NUMBER + " rolls.");
}
}
最佳答案
这是你的问题
if(die1Value == die2Value)
count++;
当此语句为 true 时,您的 else if
语句都不会运行。
例如,如果掷出 4 和 4,则 count
将递增,并且以下 else if 永远不会运行:
else if(die1Value == 4 && die2Value == 4)
fours++; // Never runs
关于java - 骰子模拟java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44427075/
我刚刚向自己介绍了 WebGL 和 Threejs,作为开始,我正在尝试创建一个 3D 骰子。我已经到了创建立方体的地步,但我真的不知道如何在立方体的面上放置数字,我能找到的只是如何更改颜色。我已经查
这就是我现在得到的...... var max = 7; var min = 1; $('#dice').click(function() { random = Math.floor(Math.r
我是 Unity 的新手,一直在尝试掷骰子。我遇到了一组教程,它们允许我创建一个 3d 模具(模具使用 Rigidbody 和 Mesh Collider)并编写脚本使其在空格键上滚动,如下所示: 骰
我是 JavaScript 新手,我需要一些想法/帮助来了解如何使我的脚本正常工作。所以我们的想法是,你掷两个骰子,通过按下“掷骰子”按钮然后按下重置按钮来重置整个 HTML 中的所有内容。 所以事情
我正在尝试构建一个掷骰子游戏,如果计算机自动掷出一对骰子,并且如果 cpu 掷出 7 或 11,则用户获胜。然而,如果用户掷出 2、3 或 12,他们将自动失败。如果用户滚动任何其他数字(4、5、6、
背景 如此处所述http://www.ericharshbarger.org/dice/#gofirst_4d12 , “先走”骰子是一组四个骰子,每个都有唯一的编号,因此: 任何两个或更多骰子都不会
我是一名优秀的程序员,十分优秀!