我正在编写战舰程序。现在我正在测试几行代码,看看它是否会让船朝上行驶。我的程序是怎么设置的,比如用户点击航母按钮设置他的航母,程序也要设置ai的航母。这些船被放置在一个按钮阵列上,称为 tlba。aifirstclicki 由随机生成器设置,因此它将选择一个随机行。aifirstclickj 选择一个随机列,结合两者在按钮阵列(即 10x10)上精确定位一个点。我编写了以下代码来尝试使它,以便如果程序有 outofboundsexception 错误,或者换句话说,如果程序选择了第一个点,最终将导致 outofbounds 异常错误,因为 for 循环将继续添加点直到 aiclickcount = 5、它应该重新开始并选择一个不同的位置,直到找到一个可以放置所有 5 个位置的位置。我一直陷入无限循环。
int aiclickcount = 0;
while (directiondecider == 0)
{//up
aifirstclicki = generator.nextInt(10);
aifirstclickj = generator.nextInt(10);
while (aifirstclicki != 3 &&
aifirstclicki != 2 &&
aifirstclicki != 1 &&
aifirstclicki != 0)
{
for(int k=0; k<shiplength; k++)
{
tlba[aifirstclicki - k][aifirstclickj].setBackground(Color.RED);
aistringarray[aifirstclicki - k][aifirstclickj] = "aircraftcarrier";
aioccupied2d[aifirstclicki - k][aifirstclickj] = true;
aiclickcount++;
}
if (aiclickcount == 5)
{
shipset = true;
break;
}
}
System.out.println(shipset);
}
有谁知道出了什么问题或对我的问题有不同的解决方案?