Как исправить: Net Beans не может найти 3D-массив - PullRequest
0 голосов
/ 30 сентября 2019

Я создаю программу в NetBeans, в которой пользователь играет ножницами из бумаги для камней против компьютерного оппонента.

Вместо случайного выбора Rock Paper или Scissors у компьютера будут другие предпочтения в зависимости от событийпоследний раунд - то есть проигрыш Року повышает вероятность играть на бумаге.

Я хотел сделать это, создав 3D-массив с 2D-массивами, когда компьютер побеждает, а компьютер проигрывает - у них самих есть массив. для Рока, Бумаги и Ножниц.

Я столкнулся с проблемой при попытке использовать массив позже;в частности, при использовании .length () для получения случайной величины, а затем извлечения числа из этого местоположения.

Netbeans просто показывает ошибку «не удается найти символ» при наведении на него - несмотря на то, что я объявил массив каки Public, и Static.

Я попытался создать временный массив, равный одному из массивов внутри внутренних 2D-массивов, но столкнулся с той же ошибкой.

public static int[][][] moveArrays = {
    //Turn 1
    {
        {1,1,1,2,2,2,3,3,3},
        {1,1,2,2,2,2,3,3,3,3,3,3},
        {1,2,2,2,2,2,3,3},
    },
    //Opponent Wins
    {
        //With Rock
        {1,1,1,1,1,2,3,3,3,3,3,},
        //With Paper
        {1,1,2,2,2,2,2,2,3},
        //With Scissors
        {1,1,2,2,3,3,3,3},
    },
    //Opponent Loses
    {
        //To Rock
        {1,1,1,1,1,1,2,2,2,2,3},
        //To Paper
        {1,2,2,2,2,2,2,3,3,3},
        //To Scissors
        {1,1,1,1,1,1,2,3,3,3,3,},
    }
};

public void turn1()  {
    int rnd = new Random().nextInt(3);
    switch (rnd) {
        case 0:
            //int[] clone = moveArray[0][0];
            int rnd2 = new Random().nextInt(moveArray[0][0].length());
            enemyChoice = moveArray[0][0][rnd2];
            break;
        case 1:
            int rnd2 = new Random().nextInt(moveArray[0][1].length());
            enemyChoice = moveArray[0][1][rnd2];
            break;
        case 2:
            int rnd2 = new Random().nextInt(moveArray[0][2].length());
            enemyChoice = moveArray[0][2][rnd2];
            break;
    }
}

Ошибка "Can't"find Symbol "происходит каждый раз, когда используется moveArray.

1 Ответ

1 голос
/ 30 сентября 2019

Ошибка «Не удается найти символ» возникает каждый раз, когда используется moveArray.

Правильно. Вы объявили массив как moveArrays, а не moveArray. Кроме того, массивы имеют переменную .length, а не метод .length(). «Не удается найти символ» означает, что вы либо опечатали, и / или не определили ссылку, которую пытаетесь использовать.

...