我正在为一个作业写一个快速的小程序,我想知道是否有人可以告诉我是否有一个方法可以比较多个int值并找到彼此匹配的方法,如对或三元组,当然,使用布尔值意味着您只能使用两个值。 把它放在上下文中,我正在写一个非常基本的老虎机游戏,看起来像这样:
//the java Random method is the method that will generate the three random numbers
import java.util.Random;
import java.util.Scanner;
public class slotMachine {
public static void main(String[] args) {
//scanner will eventually be used to detect a cue to exit loop
Scanner loopExit = new Scanner(System.in);
int rand1 = (0);
int rand2 = (0);
int rand3 = (0);
Random randGen = new Random();
rand1 = randGen.nextInt(10);
rand2 = randGen.nextInt(10);
rand3 = randGen.nextInt(10);
System.out.print(rand1);
System.out.print(rand2);
System.out.println(rand3);
//this is the part where I need to compare the variables,
//this seems like a slow way of doing it
if ((rand1 == rand2) || (rand2 == rand3))
{
System.out.println("JACKPOT!");
}
答案 0 :(得分:1)
您可以尝试使用cantor配对功能为一对或元组创建一个唯一的数字,然后您可以创建一个包含所有可赢组合的矩阵
((x + y) * (x + y + 1)) / 2 + y;
基本上可以说胜出组合是(7,7,7)
当他们滚动随机化时,您只需计算元组并检查您的获胜矩阵。
答案 1 :(得分:0)
这就是我要做的事情:
HashSet<Integer>
HashSet
中,则打印“Jackpot”(有各种方法可以检查,我会让你想出那部分)HashSet
答案 2 :(得分:0)
您可以使用数组或HashSet
或者您有什么,但由于您只有三个数字,并且不需要将其推广到更大的数组,我认为这是执行此操作的最佳方法是你的方式,除了添加必要条件,如下所示:
if ((rand1 == rand2) || (rand2 == rand3) || (rand1 == rand3))
{
System.out.println("JACKPOT!");
}
你说你担心这很慢,但我想不出一种计算效率更高的方法。