0

我做了一行代码来生成一个壮举。我添加了一个 Feat2,但我希望它不要重复。这是代码

System.out.println("Feat 1:");

    String[] Tasks6 = {"Actor", "Athlete", "Dragon Hide", "Dual Wielder", "Durable", "Elven Accuracy", "Firearm Specialist", "Healer", "Heavily Armored", "Martial Adept", "Mobile", "Moderately Armored", "Mounted Combatant", "Resilient", "Ritual Caster", "Ambidextrous", "Shield Master"};

    int Feat1 = (int) (Math.random() * (16)); // Random number generator
    System.out.println(Tasks6[Feat1]); // Task printer

    System.out.println("\n");

    System.out.println("Feat 2:");

    String[] Tasks7 = {"Actor", "Athlete", "Dragon Hide", "Dual Wielder", "Durable", "Elven Accuracy", "Firearm Specialist", "Healer", "Heavily Armored", "Martial Adept", "Mobile", "Moderately Armored", "Mounted Combatant", "Resilient", "Ritual Caster", "Ambidextrous", "Shield Master"};

    int Feat2 = (int) (Math.random() * (16)); // Random number generator
    System.out.println(Tasks7[Feat2]); // Task printer

    System.out.println("\n");
4

1 回答 1

0

这就是我所做的。更正了大小写以符合 Java 标准。方法和变量应该是驼峰式的。如果任务 6 总是与任务 7 相同,那么您可以省略冗余。创建了一个方法来返回一个随机数,就像你有的那样。我没有使用硬编码“16”,而是使用 task.legnth 以编程方式获取值。最后,我使用 while 循环来生成随机数,如果这两个值匹配,它将生成新的数字,直到它们不匹配为止。这将保证专长 1 和 2 不同。

    String[] tasks6 = {"Actor", "Athlete", "Dragon Hide", "Dual Wielder", "Durable", "Elven Accuracy", "Firearm Specialist", "Healer", "Heavily Armored", "Martial Adept", "Mobile", "Moderately Armored", "Mounted Combatant", "Resilient", "Ritual Caster", "Ambidextrous", "Shield Master"};

    int feat1 = 0;
    int feat2 = 0;

    while (feat1 == feat2) {
        feat1 = getRandomNumber(tasks6.length);
        feat2 = getRandomNumber(tasks6.length);
    }
    System.out.println("Feat 1:");

    System.out.println(tasks6[feat1]); // Task printer

    System.out.println("\n");

    System.out.println("Feat 2:");
    
    System.out.println(tasks6[feat2]); // Task printer

    System.out.println("\n");
}

static int getRandomNumber(int max) {
    return (int) (Math.random() * (max));
}
于 2021-10-24T02:52:23.997 回答