2016-04-03 3 views
-2

Я хотел бы получить помощь в этой программе, которую я пишу. Я хочу вывести два, причем обе их граничные частоты добавляются вместе. Вот текущий код, который я написал. Сейчас он очень прост и очень плохо написан. Я очень новичок в кодировании на Java, поэтому, пожалуйста, дайте мне советы и подсказки, которые помогут мне :).Как вывести две кости и добавить их вместе

import java.util.Random; 

public class DiceRolling { 

    public final static Random randomNumbers = new Random(); 

    public static void main(String[] args) { 

     int[] dice1 = new int[7]; 
     int[] dice2 = new int[7]; 

     // prints out the headings 

     for (int headOne = 1; headOne <= 6; headOne++) 
      System.out.print(" " + headOne); 

     System.out.println(); 

     for (int headTwo = 1; headTwo <= 6; headTwo++) 
      System.out.println(headTwo); 

     // The rolls of the two dices begins here 

     for (int frequencyOne = 0; frequencyOne < 36000000; frequencyOne++) { 
      ++dice1[1 + randomNumbers.nextInt(6)]; 
     } 

     // output faces of die 
     for (int faceOne = 1; faceOne < dice1.length; faceOne++) { 
      System.out.print(" " + dice1[faceOne]); 
     } 
    } 

} 
+3

В чем вопрос? Есть что-то, что не работает? Почему вы импортируете 'java.lang.reflect.Array'? – Thilo

+1

'dice2' никогда не используется, это намеренно? Вы должны задать более конкретный вопрос. –

ответ

-1

В следующем коде будет напечатано сколько раз каждое лицо прокатывается. Вы заметите, что все грани скатываются почти столько же раз из-за алгоритма случайного числа, используемого библиотекой Random java. Если у вас есть вопросы, задайте вопросы!

import java.util.HashMap; 
import java.util.Map.Entry; 
import java.util.Random; 

public class DiceRolling { 

    public final static Random randomNumbers = new Random(); 

    public static void main(String[] args) { 
     // create a hashmap to hold the amount of times each number was rolled 
     HashMap<Integer, Integer> frequencies = new HashMap<Integer, Integer>(); 

     // roll the dice 360000 times 
     for (int rolls = 0; rolls < 360000; rolls++) { 
      // roll dice 
      int result = (randomNumbers.nextInt(6) + 1); 

      // if the result has already happened add it 
      if (frequencies.containsKey(result)) { 
       frequencies.put(result, (frequencies.get(result) + 1)); 
       continue; 
      } 
      // else add it and set its frequency to 1 
      frequencies.put(result, 1); 
     } 

     // print results 
     for (Entry<Integer, Integer> entry : frequencies.entrySet()) { 
      System.out.println("Face: " + entry.getKey() + ", Times rolled: " + entry.getValue()); 
     } 
    } 
} 
+0

Спасибо! Теперь у меня есть немного лучшее понимание. – Nomide