有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

arraylist Connect四代码(Java)列放置不工作

我想做的是制作一个连接四的游戏,在这个游戏中,筹码下降到底部,然后成为下一个玩家的回合

我遇到的问题是,我只能填充最下面一行,因为每次我在那里放置芯片时,我都会再次调用placeChip方法,从而重新启动for循环。我看到了这个问题,所以我制作了一个静态ArrayList来保存为每行放置的项目数量的值。例如,如果电路板是6行7列,arrayList将如下所示:

[6, 6, 6, 6, 6, 6, 6]

在我的placeChip方法中,我说如果输入的点未满,请将芯片放在那里。然而,无论我输入什么数字,ArrayOutOfBoundsException都会发生错误,在本例中(6x7),它表示索引6超出长度6的界限。以下是我刚才引用的代码(错误指向此代码段中的第二行,可能是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是用户输入的值,用户希望输入该列

如果我没有提供足够的信息,或者如果我遗漏了其他内容,请告诉我


共 (1) 个答案

  1. # 1 楼答案

    不能这样评论:

    amountOfItemsInEachCol.get(dropCol - 1);可能会从ArrayList中获取值,即6。如果列的长度为6,则索引为0-5。您可能应该从rowInput中减去一个,但这只是一个猜测,因为代码太少了