首页 > 解决方案 > 尝试创建一个程序,模拟滚动 500 个骰子,并以星星的形式显示 1、2、直到 6 的数量

问题描述

public class looptests {
    public static void main(String[] args) {
        Random randGen = new Random();
        int seedValue = 0;
        randGen.setSeed(seedValue);

        int i;          // Loop counter iterates numRolls times
        int numRolls;   // User defined number of rolls
        int numOnes = 0;
        int numTwos = 0;
        int numThrees = 0;
        int numFours = 0;
        int numFives = 0;
        int numSixes = 0;   // Tracks number of 6s found

        int diceOne; // Dice 1 values
        int diceTwo;
        int totalRolls = 0;  // Sum of dice values

        numRolls = 500;

        // Roll dice numRoll times
        if  (numRolls >= 500);

            for (i = 0; i < numRolls; i++) {
                diceOne = randGen.nextInt(6);
                diceTwo = randGen.nextInt(6);

                totalRolls = diceOne + diceTwo;

                if (totalRolls == 1) {
                    numOnes = numOnes + 1;
                }
                if (totalRolls == 2) {
                    numTwos = numTwos + 1;
                }
                if (totalRolls == 3) {
                    numThrees = numThrees + 1;
                }
                if (totalRolls == 4) {
                    numFours = numFours + 1;
                }
                if (totalRolls == 5) {
                    numFives = numFives + 1;
                }
                if  (totalRolls == 6) {
                    numSixes = numSixes + 1;
                }
            }
        int count = 0;
        while (count < 6) {

            // Print statistics on dice rolls
            System.out.println("One (" + numOnes + ")");
            count++;
        }
    }
}

这就是我达到的程度,我有几个问题,第一,这不是随机的,我一遍又一遍地得到相同的数字,其次,我没有设法显示“*”来反映数量我有多少次得到一两个。例子:

一 (65): ********************************************* ********************

二 (80): ********************************************* ***********************************

三(86):********************************************* *****************************************

四(107):********************************************* ****************************************************** ************

五(91):************************************************ ************************************************

六(71):********************************************* ******************************

标签: java

解决方案


您得到相同的数字,因为您将相同的种子设置为 Random 实例。例如,通过 Math.random() 生成随机种子,或者根本不设置种子。

要打印星星,您可以使用循环并按一打印星星:

System.out.print("One (" + numOnes + ")");
for (int i = 0; i < numOnes; i++) {
    System.out.print("*");
}
System.out.println();

推荐阅读