如何在Java中确定三个骰子?

时间:2015-11-11 18:24:06

标签: java dice

我正在制作一个滚动三个骰子的Java程序,然后确定它是三对,直接还是成对。我怎样才能确定它是否是直的?

static int d1, d2, d3;
static int wins, loses, ties, rounds;

public static void main(String[] args) {
    Scanner scanner = new Scanner(System.in);
    char answer;

    welcome();
    while (answer != 'n') {
        DieGame.d1 = rollDie(1, 7);
        DieGame.d2 = rollDie(1, 7);
        DieGame.d3 = rollDie(1, 7);

        printDice(d1, d2, d3); 

        if (isTriple(d1, d2, d2)) {
            wins++;
        }

        else if (isStraight(d1, d2, d3)) {
            wins++;
        }


    }
}


public static boolean isStraight(int d1, int d2, int d3) {

    }

这里只是一些代码。显然还有其他方法,但我在努力确定一个直线。我们还没有在阵列上,所以我无法使用它。

3 个答案:

答案 0 :(得分:2)

这样的事情应该有效

public boolean isStraight(int d1, int d2, int d3) {
   int min = getMin(d1, d2, d3);
   int mid = getMid(d1, d2, d3);
   int max = getMax(d1, d2, d3);

   if((max - mid) == 1 && (mid - min) == 1) {
     return true;
   } else {
     return false;
   }
}

getMin,getMid和getMax返回最小值,中间值和最大值。由于你还没有使用数组,我假设你不能使用Math.min()等等。所以,这些看起来如下。

public int getMin(int d1, int d2, int d3) {
  int min = d1;
  if (d2 < min) {
    min = d2;
  }
  if (d3 < min) {
    min = d3;
  }
  return min;
}

等等......

答案 1 :(得分:0)

    public boolean isStraight(int d1, int d2, int d3) {
    
        int min = Math.min(d1,Math.min(d2,d3))
        int max = Math.max(d1,Math.max(d2,d3))
        if((max-min)==2)
           return true;
        else
           return false;

    }

答案 2 :(得分:-1)

对于这三个结果(三对,直,或对),一个非常好的提示可以使用 Set 集合(因为它不接受重复的值),你可以将所有6个数字放入一个空集然后按照集合的大小来评估结果,我的意思是在最后和将所有6个值放入集合之后:

  1. 如果集size3,则结果为:three pair

  2. 如果集size6,则结果为:straight

  3. 如果集size5,则结果为:pair

  4. 一个简单的样本:

    Integer[] values = {1, 4, 6, 1, 6, 4};
    Set<Integer> resultValues = new HashSet<Integer>();
    for (Integer i : values) {
        resultValues.add(i);
    }
    
    switch (resultValues.size()) {
        case 3:
            System.out.println("Three Pairs");
            break;
        case 6:
            System.out.println("Straight");
            break;
        case 5:
            System.out.println("One Pair");
            break;
        default:
            System.out.println("Others");
    }
    

    输出:

    Three Pairs