Игра в кости в BlueJ

Что не так с моим кодом? Я использую BlueJ. В основном то, что я пытаюсь сделать, это выбрать, сколько сторон у кубика, ввести количество каждой из сторон, бросить кубик определенное количество раз и показать, сколько раз бросалось число.

Пример: шесть сторон, числа: 1, 2, 3, 4, 5, 6. Я бросаю кости 20 раз. И я вижу, сколько раз переворачивалась сторона.

Ошибка: java.lang.ArrayIndexOutOfBoundsException

import javax.swing.*;
class Dice
{
    public static void main (String [] args)
    {
            int c = Integer.parseInt(JOptionPane.showInputDialog("How many sides?"));
            String[ ] number = new String[c];
            int[ ] sides = new int[c];

            int d = Integer.parseInt(JOptionPane.showInputDialog("How many times do you want to roll your dice?"));
            int[ ] output = new int[c];

            for(int i=0;i<c;i++)
            {
                number[i] = JOptionPane.showInputDialog("Enter side number:");
            }
            for(int i=0;i<d;i++)
            {
                int r;
                r = (int) Math.floor(Math.random() * c) + 1;

                if(r == sides[i])
                {
                    sides[i] = sides[i] + 1;
                }
            }
            for(int i=0;i<c;i++)
            {
                System.out.println(number[i] + " was rolled " + output[i] + " times.");
            }
    }
}   

person user3598334    schedule 14.08.2014    source источник
comment
Вы говорите нам, что не так! Добавьте сообщение об исключении, если таковое имеется, а также ожидаемый и фактический результат.   -  person shree.pat18    schedule 14.08.2014


Ответы (2)


Ваша строка кода, которая читает

int[ ] output = new int[c]

действительно должен прочитать

int[ ] output = new int[d]

потому что размер вашего выходного массива должен быть равен тому, сколько раз пользователь хочет бросить кубик, который хранится в d. c сохраняет количество сторон матрицы.

person Ezra-Shimon    schedule 15.08.2014

person    schedule
comment
что-то не так с кодом ur. он показывает неправильный вывод. попробуйте этот код !!!! - person supercoder; 01.08.2018
comment
Вы можете объяснить свой ответ? Это может помочь вам stackoverflow.com/help/how-to-answer. - person soundslikeodd; 01.08.2018