2016-11-11 7 views
0

私はこの昨夜尋ねましたが、質問のフォーマットが貧弱なために何か答えが得られなかったので、理解できる文脈;ギャンブルマシンのようにする代わりに、ダイスロールの代わりにJavaのロトマシン番​​号入力を交換してください

自分のJavaコースでJava Lottoプログラムを作ってから、私がJavaブックから作ったダイスプログラムで遊んでいたので、番号を入れ替えてロトマシンからギャンブルマシンを作ることができたと思っていましたダイスロールで入力してください。サイコロの数値入力を入れ替える方法は?質問が理にかなっていない場合は、私に知らせてください。短時間で2回投稿すると申し訳ありません。

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の間のランダムなサイコロ値を生成するために:あなたのgetterメソッドが続く

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; 
} 

をdice1とdice2の値にアクセスします。

次に、ダイスの値を推測し、ユーザーの入力をダイスのロールと比較するようにユーザーに依頼します。私はあなたのために全部をコーディングするつもりはありませんが、これが正しい方向にあなたを押し進めてくれることを願っています!

+0

ありがとうコーディ。それは本当に助けになる、あなたの説明は意味をなさない。私はちょっとそれに取り組まなければならない。 – Banba

関連する問題