如何在2D数组Java上仅更改和显示一列(通过用户输入)
我正在创建一个游戏板。我需要它在用户输入后显示所选列的一个名称,而其余列仍打印为“X”。这个游戏保存我在每一列中设置的值,但不在屏幕上打印它们。当用户选择一列时,我需要它打印显示该列所持有的值,而其余列仍打印“X”,这样它们就不会显示它们拥有的内容。我是新手,谢谢你的帮助
这就是我认为问题所在的函数。如果你看,你会看到,我有一个if语句“if(isCovered)”,然后我希望它打印覆盖的版本。然后是“else”—我希望它只打印被猜测为其实际值的版本。我尝试了多种方法来实现这一点,但没有运气。有没有办法让它像(!isCovered)一样? 但这不起作用,因为它声明它需要是一个数组和函数“!”不起作用。现在它似乎根本就没有打印“else”语句。我有一些函数,可以接受用户的输入,并将它们与“isCovered”进行比较,它们工作正常,因为工件应该在板上移动。我只是无法让它打印实际值而不是“X”。谢谢你的帮助,如果进一步的信息会有帮助,请让我知道。今天就到期了,很不幸,我只有几天的时间来做,而且一直在做
public static void PrintRevealBoard(int[][] myArray,Boolean[][] isCovered)
{
int i, j;
for (i = 0; i<myArray.length ; i++ ) { // array.length = max rows
System.out.print((i+1) + " ");
for(j = 0; j <myArray[0].length; j++) { // array[0].length = max
cols
if(isCovered[i][j]){
System.out.print(GetRollColorCovered(myArray[i][j]) + " ");
} else {
System.out.print(GetRollColor(myArray[i][j]) + " ");
}
}
# 1 楼答案
你的主要模块有点乱。我不知道GetRollColor(骰子)是如何工作的。无论如何,据我所知,你有一个二维数组,你只想显示一个特定的值。看起来你想显示整个输入列。 使用此选项在输入inputCol后更新isRevaled()
像这样更新,
您的printRevealBoard几乎正确。只需删除第一行。这没有道理,你也不想我看到的那样
我不知道你的阵列是什么样子。但是由于第一个for循环,u肯定会得到一个
循环一直运行,直到我成为myarray。长在下一个循环中,您将访问myArray的索引I。如果I=myArray,将引发异常。长你得把它修好。如果有什么问题,让我知道。 谢谢
编辑: 在printRevealBoard上试试这个