【发布时间】:2020-06-24 12:26:53
【问题描述】:
我想做的是做一个四人连线游戏,筹码下降到底部,然后成为下一个玩家轮到。
我遇到的问题是我只能填写最后一行,因为每次我将芯片放在那里时,我都会再次调用 placeChip 方法,这会重新启动我的 for 循环。我看到了这个问题,所以我制作了一个静态 ArrayList 来保存为每一行放置的项目数量的值。例如,如果棋盘是 6 行 7 列,arrayList 应该是这样的:
[6, 6, 6, 6, 6, 6, 6]
在我的 placeChip 方法中,我说如果输入的位置未满,请将芯片放在那里。但是,无论我输入什么数字,都会发生 ArrayOutOfBoundsException 错误,在这种情况下(6x7),它显示索引 6 超出长度 6 的范围。这是我刚刚引用的代码(错误指向此 sn-p 中的第二行,大概是 rowInput部分是因为这是这条线中唯一一个半工作但之前仍然运行的新部分):
int rowInput = amountOfItemsInEachCol.get(dropCol - 1);
if (!(playingBoard.isFull(rowInput, dropCol - 1))) { // saying if the spot is not occupied, fill it
amountOfItemsInEachCol 是上面提到的 ArrayList,dropCol 是用户想放入的列的值。
如果我没有提供足够的信息,或者我错过了包含其他任何内容,请告诉我。
【问题讨论】:
-
不要用英语描述你的代码 - 只需发布minimal reproducible example。
-
这里没有足够的代码让我们看到问题。比如
playingBoard是什么类型的对象,它的isFull方法的代码是什么?正如@sleepToken 所说,如果您希望我们有机会看到问题所在,您真的应该发布一个最小的、可重现的示例。我们应该能够运行您提供的代码并得到相同的错误。
标签: java arraylist multidimensional-array