我正在NetBeans中创建一个程序,用户可以在该程序中向计算机对手播放剪刀石头布。

计算机将根据上一轮的事件而不是随机选择Rock Paper或剪刀,而是会具有不同的首选项-即输给Rock使其更有可能打纸。

我想通过创建3D数组和2D数组来实现此目的,以便在计算机获胜和计算机失利时使用-它们本身都有一个分别用于岩石,纸张和剪刀的数组。

稍后尝试使用数组时遇到了问题。特别是使用.length()获取随机变量,然后从该位置提取数字。

尽管我将数组声明为Public和Static,但Netbeans将鼠标悬停在它上面时仅显示错误“找不到符号”。

我尝试创建一个与内部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;
    }
}


每次使用moveArray时,都会出现错误“找不到符号”。

最佳答案

每次使用moveArray时,都会出现错误“找不到符号”。


正确。您已将数组声明为moveArrays,而不是moveArray。此外,数组具有.length变量,而不是.length()方法。 “找不到符号”表示您输入了错误,和/或没有定义您要使用的参考。

10-07 16:29