2016-09-13 15 views
-1

私はmainからのサイコロの値を代入し、それを私のclass-> methodに送り、この値をループする必要があります。サイコロを投げされるたびに、1-6のランダムな値をどこかに保存する必要があり、私はこのようにそれをやった:私も格納するためになってるforループの基本的なrandomの実装

public class Generator { 
    public static int DiceGame(int amountToss) 
    { 
     //Declare local variables 
     int numberShowing = 0; 
     int toss = 0; 
     int result = 0; 
     int one = 1; 
     int two = 2; 
     int three = 3; 
     int four = 4; 
     int five = 5; 
     int six = 6; 

     Random dice = new Random(); //Create constructor 
     numberShowing = dice.nextInt(6) +1; 
     for (int i = 0; i < toss; i++) { 
      numberShowing = i; 
      resultat=i; 
     } 
     return result; 
    } 
} 

が何回1S、2Sを表示しますなどが表示されていますが、私は後でそれを見つけるでしょう。 私は動作するように、少なくとも何かをしたい。..

+0

中括弧が欠けているようです。これはコピーパスタから逃しましたか?編集がより多くのコードを追加するまで、中括弧はありませんでした。 –

+1

それでは、正確に何を達成しようとしていますか?必要な出力は何ですか? – Mureinik

+0

真剣に、何が必要なのですか? –

答えて

1

私が正しくあなたを理解する場合は、返される配列はインデックスでサイコロ側あたりのカウントを持つことになります。この

public static int[] DiceGame(int amountToss) 
{ 
    //Declare local variables 
    int[] nums = new int[6]; 

    Random dice = new Random(); //Create constructor 
    for (int i = 0; i < amountToss; i++) { 
     nums[dice.nextInt(6)]++; 
    } 
    return nums; 
} 

をしたいでしょう。

+0

ええ、私はそれをやや好きにしたいと思いますそれ!私はそれが受け入れられたかどうかはわかりませんが、配列を経由していないので、私は彼が私たちに迷惑な回避を期待していると思います。それゆえ、各番号に変数を宣言するという手間を掛けました – Patt089

0

あなたのトスの値が0に初期化されているため、結果が表示されないと思います。 10回ごとに1ずつ減らします。生成する数値を表示するには、forループを閉じる前に結果を出力する必要があります。また、生成した結果をリストに格納してリストを印刷することもできます。お役に立てれば。

for (int i = 0; i < toss; i++) { 
      numberShowing = i; 
      result=i; 
      toss --; 
      System.out.println(result); 
} if (toss == 0){ 
toss = 10; 
} 
0

ランダム値の結果と各数値のカウントを保存して表示するためのコードです。

public static void DiceGame(int amountToss) { 
    //Declare local variables 

    Random dice = new Random(); 
    int outputNumbers[] = new int[amountToss]; 
    int numbersCount[] = new int[6]; 
    int current = 0; 

    for (int i = 0; i < amountToss; i++) { 

     current = dice.nextInt(6) + 1; 
     outputNumbers[i] = current; 
     numbersCount[current-1]++; 
     System.out.println("number: " + outputNumbers[i]); 

    } 

    System.out.println("\nNumbers count:\n"); 
    for (int i = 0; i < amountToss; i++) System.out.println((i+1) + ": " + numbersCount[i]); 

} 

希望すると、これが役立ちます。

関連する問題