我正在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()
方法。 “找不到符号”表示您输入了错误,和/或没有定义您要使用的参考。