2016-11-11 68 views
0

我昨天晚上问,但没有得到任何答案最有可能由于我的问题格式不良所以我在这里重新发布它更多可理解的背景;交换Java乐透机器号码输入骰子滚动,而不是像赌博机

我为我的Java课程制作了Java乐透程序,然后我正在玩从我的Java书中制作的骰子程序,并且我想我可以通过替换数字来制作赌博机器用骰子输入代替。我将如何去交换掷骰子的输入数字?如果问题没有意义,请告诉我。对不起,在短时间内发布两次。

import java.util.Random; 

import java.util.Scanner; 

class Lottery { 

private final int lotteryNumbers[]; 

public Lottery() { 

    Random rand = new Random(System.currentTimeMillis()); 
    lotteryNumbers = new int[2]; 
    for (int i = 0; i < lotteryNumbers.length; i++) { 
     lotteryNumbers[i] = Math.abs(rand.nextInt()) % 90; 
    } 
} 

public class Dice { 
    int die1; 
    int die2; 

    Scanner keyboard = new Scanner(System.in); 

    Random rand = new Random(); 
} 

public int compareNumbers(int[] usersNumbers) { 

    int match = 0; 
    if (usersNumbers.length == lotteryNumbers.length) { 
     for (int i = 0; i < lotteryNumbers.length; i++) { 
      if (usersNumbers[i] == lotteryNumbers[i]) { 
       match++; 
      } 
     } 
    } 
    return match; 
    } 

public int[] getLotteryNumbers() { 
    return lotteryNumbers; 
} 
    } 

    public class LottoMachine11 { 

public static void main(String[] args) { 

    String again = "y"; 

    Lottery lottery = new Lottery(); 
    int lotteryNumbersCount = lottery.getLotteryNumbers().length; 

    while (again.equalsIgnoreCase("y")) { 

     System.out.println("Lottery application\n"); 
     System.out.println("There are " + lotteryNumbersCount 
       + " numbers in range of 0 through 9. " 
       + "Try to guess all of them\n"); 

     Scanner keyboard = new Scanner(System.in); 
     Scanner kb = new Scanner(System.in); 
     int numbers[] = new int[lotteryNumbersCount]; 

     for (int i = 0; i < numbers.length; i++) { 
      System.out.print(String.format("Enter number %d: ", i + 1)); 
      numbers[i] = kb.nextInt(); 
     } 

     int match = lottery.compareNumbers(numbers); 

     if (match == lotteryNumbersCount) { 

      System.out.println("\nYou got all the numbers correct. You won the grand prize!"); 

     } else { 

      System.out.println("Uh oh, you only got " + match + " number(s)."); 
      System.out.print("Play again? (y = yes)? "); 
      again = keyboard.nextLine(); 
     } 
    } 
} 
+0

我为初学者添加了骰子滚动类。我还添加了一个循环,但我希望它是一个数组中的循环,而不是重复的打印。 – Banba

回答

0

嗯,你会首先要1-6之间产生随机骰子值,所以你骰子类应该像这样的事情:

Dice { 
    int die1; 
    int die2; 

    Random rand = new Random(); 

    //Generates random value between 1 and 6 for dice1 and dice2 
    dice1 = rand.nextInt(6) + 1; 
    dice2 = rand.nextInt(6) + 1; 
} 

其次是你的getter方法以访问dice1和dice2的值

然后要求用户猜测骰子值并将用户输入与骰子卷进行比较。我不会为你编码整个事情,但我希望这会推动你朝着正确的方向发展!

+0

谢谢科迪。它确实有帮助,你的解释是有道理的。我一定会努力一点。 – Banba