Java arraylist投掷骰子

时间:2015-01-25 15:36:30

标签: java arrays arraylist

我是Java的新手,我正试图制作一个arraylist。

我做了一个小程序,要求用户输入一些骰子:

    System.out.println("How many dices do you want to throw?");
    int diceAmount = input.nextInt();
然后我做了一个循环来打印骰子,但我不能让它使骰子的数量是随机的。我必须用随机结果计算总骰子:

    for (int i = 1; i <= diceAmount; i++) {
            System.out.print(i + "-");

3 个答案:

答案 0 :(得分:2)

Random rand = new Random();

(int i = 1; i <= diceAmount; i++) {
   // roll the dice once
  int roll1 = rand.nextInt(6) + 1;
  System.out.print(i + "-" + roll1);
}

更新:

这是总结数字的方法。所以,假设你每次掷2个骰子。

    Random rand = new Random();
    // roll the dice once
    int roll1 = rand.nextInt(6) + 1;
    int roll2 = rand.nextInt(6) + 1;
    sum = roll1 + roll2;
    System.out.println("You got " + sum + ". Not bad!");

答案 1 :(得分:1)

对于每个模具卷,您需要一个随机数(如果是传统模具,可能是1-6)。所以你的循环是正确的,但循环体需要修复:

for(int i = 0; i < diceAmount; i++){ //repeats diceAmount times
   //Do loop stuff. 
}

要获得随机数,请从Math.random()开始。这将在double范围内返回随机[0 .. 1)。这意味着0是有效的回报,但1不是。从那里我们想要扩展范围达到6。

Math.random() * 6

返回[0 ..6)范围内的随机双精度数。我们需要整数,而不是双打,所以让我们去投整。

(int)(Math.random() * 6)

返回[0 .. 6)范围内的随机 int - &gt; [0 .. 5]。从那里,只需添加1。

(int)(Math.random() * 6) + 1

将返回[1 .. 6]范围内的随机int,这正是您的目标。所以一起:

for(int i = 0; i < diceAmount; i++){
    int dieRoll = (int)(Math.random() * 6) + 1;
    System.out.println(dieRoll);
}

答案 2 :(得分:0)

使用Math.random()随机化您的骰子数量。有很多重载版本的random()方法。阅读Oracle文档中的Java.Math。