我正在尝试制作一个掷骰子应用程序。它可以掷出特定数量的骰子。有没有办法添加这些值?

Posted

技术标签:

【中文标题】我正在尝试制作一个掷骰子应用程序。它可以掷出特定数量的骰子。有没有办法添加这些值?【英文标题】:I'm trying to make a dice throwing app. It can throw specific number of dices. Is there a way to add these values? 【发布时间】:2021-04-25 04:28:11 【问题描述】:

您能帮我找到添加这些值的方法吗?我正在尝试制作一个掷骰子来玩龙与地下城。感谢您的帮助!

System.out.println("What kind of dice?");
    
    int  diceType = userInput.nextInt();
    


    System.out.println("How much?");
    
    
    int  diceNumber = userInput.nextInt();
    
    int i = 1;
    while ( i <=diceNumber)
        
     System.out.println("Value:  " 
              + getRandomInteger(diceType, 1));
            i++;

【问题讨论】:

Java 和 javascript 是完全不同的语言 你可以......在循环外定义一个变量,将其初始化为零,然后在循环内添加它。您可以使用a = a + diceValue 之类的表达式,或等效的a += diceValue 如何命名一个随机整数?现在它们只是随机整数,所以我不能将它添加到变量中 创建一个变量int sum = 0;(在循环外),然后添加随机值。您可以使用Random#nextInt(diceType) + 1 获取从 1 到 diceType 的随机值。 请记住,诸如 dice.getDie1() 之类的函数调用表示一个值,因此可以在任何可以使用文字数字或变量的地方使用它。不需要将函数返回的值分配给变量。可以直接使用。 【参考方案1】:

问题 #1:为模具创建数据结构。

这个骰子对象应该至少存储边数和当前面值。您可以隐含地假设每一边都有一个从 1 到 NUM_SIDES 的唯一值。您可以创建具有不同面数的骰子,或者您可以改变相同的骰子集合以改变 NUM_SIDES 的值。无论如何,面值仍将在 1 到 NUM_SIDES 之间。

public class Die 
   private int currentValue;
   private int numberOfSides;

   public int getCurrentValue()  return currentValue;
   public int roll() currentValue = getRandomInteger();


问题 #2:掷骰子

首先,将骰子存储到骰子数组中(或其他允许重复的集合)。你的 die 对象应该有一个 roll() 函数来改变当前值。你的getRandomInteger()应该被这个方法调用,这个调用的结果应该存储在currentValue字段中。

问题 #3:添加值

遍历 die 数组并添加获取它们的当前值。这意味着您的 Die 类应该有一个 getCurrentValue() 方法。累积骰子的总和。

需要考虑的事项

    所有死都应该有相同的面数吗?我认为这一点都不重要。事实上,我认为您可以对像 Yahtzee 这样的游戏使用相同的实现,其中骰子的面数相同,或者 AD&D 的骰子面数不同。 重播规则。在像 Yahtzee 这样的游戏中,你并不总是滚动整个集合。您需要考虑一种策略,用户可以选择一些骰子进行重新掷骰。我不记得这是否适用于 AD&D,但如果是,您需要考虑如何区分每个骰子并部分累积每个掷骰的当前值。 随机化。对于更现实的随机化,请考虑将seeding your randomizer 与当前时间类似。此外,您需要 set your boundaries for the possible roll values 介于 1 和 NUM_SIDES(含)之间。 设置边数。假设边数可以改变,您需要添加一个 setter 方法来设置边数。您还需要通过构造函数传递此参数,以便在实例化骰子对象时将骰子设置为某个有效数字。

【讨论】:

以上是关于我正在尝试制作一个掷骰子应用程序。它可以掷出特定数量的骰子。有没有办法添加这些值?的主要内容,如果未能解决你的问题,请参考以下文章

CodeForces 534C - Polycarpus' Dice(思路)

掷骰子程序在每次运行时生成相同的随机数序列

条件期望习题

骰子游戏

09骰子游戏

掷骰子 dp