gpt4 book ai didi

Java-在一定条件下向后迭代数组

转载 作者:行者123 更新时间:2023-12-01 11:38:44 24 4
gpt4 key购买 nike

因此,对于我的一个游戏模型,有一个表示为字符串“--X-X”的元素数组,因此该板有 5 个盒子,位置为 0-4。每个“X”只能向左移动。有一个“X-Index”,因此如果我运行 getIXPosition(1) ,它将返回第一个 X 的位置,即 2。 getXPosition(2) 将返回第二个 X 的位置,即 4。所以字符串板是“--X-X”,但在我的代码中,它表示为一个数组“00102”,以便我可以跟踪 xIndex。

现在我的问题是我需要制定一个移动方法来防止第二个 x 跳过第一个 X 进入位置 1 或 0。在这个游戏中这是不允许的。我认为我正确地编写了该方法,但是当我测试以确保第二个 X 不能跳过它之前的任何 X 时,我的测试没有通过。

public void move(int xIndex, int newPosition) 
{
int oldPosition = getXPosition(xIndex);

for(int i= oldPosition - 1; i >= 0;i--)
{
while (board[i] == 0 )
{
board[oldPosition] = '0'; // so this spot is open '-'
board[newPosition] = xIndex;
}
throw new IllegalArgumentException("Error cannot move X to new position");
}
}

我做错了什么?

最佳答案

如果您知道要移动到的位置,则无需搜索它,只需移动到那里即可。

if (board[newPosition] == '0') {
board[newPosition[ = xIndex;
board[oldPosition] = '0';
} else {
throw new IllegalArgumentException("Error cannot move X to new position");
}

注意:字符'0'不是值0(实际上它是ASCII的48)

关于Java-在一定条件下向后迭代数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29733987/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com