Yahtzee计划的“再次掷骰子”方法

时间:2015-04-20 02:10:44

标签: java java.util.scanner validation

我正在尝试一种方法,它采用五个骰子随机掷骰(int []骰子)并允许用户说出他们想要再次投掷哪个骰子(第1,第2,第3,第4或第5个骰子) )喜欢在游戏Yahtzee。我还必须验证用户是否选择了1到5之间的数字,他们不会输入重复的数字,并且他们不会输入超过4个数字再次滚动。如果要求不满足,我需要打印"非法死亡!"并要求用户再次输入。无论他们选择哪个骰子/骰子都需要再次随机化并分配到骰子[]阵列。这是我到目前为止基本上采用用户字符串输入并将其更改为整数,我无法弄清楚如何做我上面提到的其他事情。任何帮助将不胜感激!

 public static void throwAgain(int[] dice) {
    Scanner keyboard = new Scanner(System.in);

    System.out.print("List which die to throw again: ");
    String line = keyboard.nextLine();
    String [] strArray = line.split(" ");
    int [] intArray = new int[strArray.length];
    for (int i = 0; i < intArray.length; i++){
        intArray[i] = Integer.parseInt(strArray[i]);  // Changes user's string input to an array of integers
    }

    // Arrays.sort(intArray);

}

1 个答案:

答案 0 :(得分:1)

  

我还必须验证用户是否选择了1到5之间的数字

在循环时检查每个int。 ><很有用。

  

他们没有提供重复的号码

创建一个将检查每个先前值的子循环。 =很有用。

  

并且他们不会输入超过4个数字再次滚动。

.length>非常有用。

  

如果要求不满足,我需要打印&#34;非法死亡!&#34;

布尔标志errorfalse开头,并在验证检查失败时将其设置为true。最后,检查标志。 System.out.println很有用。

  

并要求用户重新输入。

while很有用。在顶部将error设为true,在循环开始时设为false。发生错误时循环。

  

无论他们选择哪个骰子/骰子都需要再次随机化并分配给骰子[]数组

循环遍历intArray,并为dice元素分配新的随机值,这些元素的索引比intArray的每个元素小一个。 []-java.util.Random非常有用。