java - 如何在 Java 中检查匹配的随机数

标签 java

我正在创建一个老虎机游戏,如果所有三个数字都匹配,则会传达一条消息“大奖”。现在我想在只有两个数字匹配时将此消息更改为“关闭”,我正在努力寻找一种方法来测试三个数字中的两个是否匹配,而不是同时显示这两个消息。

import java.util.Random;

public class SlotMachine {
    public static void main(String[] args) {
        boolean playing = true;
        Random rand = new Random();

        int number1 = rand.nextInt(2)+1;
        int number2 = rand.nextInt(2)+1;
        int number3 = rand.nextInt(2)+1;
        int total = number1 + number2 + number3;

        System.out.println("-------------------");
        System.out.println("| " + "( "+ number1 + " )" + "( " + number2 + " )" + "( " + number3 + " )" + " |");
        System.out.println("-------------------");

        if(number1*3 == total && number2*3 == total && number3*3 == total){
            System.out.println("|    JACKPOT!!!   |");
            System.out.println("-------------------");
            playing = false;
        }

        if(number1 == number2) {
            System.out.println("|     CLOSE..     |");
            System.out.println("-------------------");
        }
    }
}

最佳答案

如果您只关心唯一值(重叠)的数量,那么我会简单地创建一个 Set<Integer>并将这三个数字相加。因为 Set只允许唯一值,任何重复值都将有效消失,因此剩余数量将显示您的老虎机生成了多少个不同的数字,为您提供所需的答案。

Set<Integer> uniqueNumbers = new HashSet<>(4);
uniqueNumbers.add(number1);
uniqueNumbers.add(number2);
uniqueNumbers.add(number3);

int uniqueCount = uniqueNumbers.size();
if (uniqueCount == 1) {
    // Jackpot code goes here.
} else if (uniqueCount == 2) {
    // "Close" code goes here.
}

关于java - 如何在 Java 中检查匹配的随机数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40675743/

相关文章:

java - 从添加到 arraylist 的 SQL 表中删除重复值

java - 如何在任务栏上制作 Windows 7 加载栏

java - 执行逆 FFT 后,频率滤波图像为黑色

java - 仅包含图像的 ListView

java - 启用 html 的 android ListView

java - CardView 滑动操作 - Material - Android Java

java - 修复 Eclipse 中的模块 {a} 不会 "opens {package}"到模块 {B}

java - Elasticsearch - 分配分片

java - DEBUG 和 RELEASE 在 Java (Eclipse) 中构建?

java - 简单的 Java 加密和 JSON 友好的编码?