gpt4 book ai didi

Java战舰检查命中位置

转载 作者:行者123 更新时间:2023-12-01 13:00:29 24 4
gpt4 key购买 nike

我正在创建一款战舰游戏,但在同一位置拍摄时遇到问题。我有一个用于 shot 方法的数组,保存在 shoot[0] 中的行和 shoot[1] 中的列。我正在尝试创建一个二维数组来存储行的 shoot[0] 位置和列的 shoot[1] 位置;然后使用该双数组我可以检查已经命中的位置。问题是,我不确定是否可以将信号数组存储在双数组[行][列]中的位置。

在处理这段代码一段时间后,我得到了 2D 数组来存储 Shoot[0] 和 Shoot[1] 的值。但我不知道我这样做是否正确:

    public static void shoot(int[] shoot, int[][] ships){
int[][] check = new int[6][6];
Scanner input = new Scanner(System.in);

System.out.print("Enter AI Row: ");
shoot[0] = input.nextInt();

System.out.print("Enter AI Column: ");
shoot[1] = input.nextInt();

while((shoot[0] <= 0 || shoot[1] <= 0) ||(shoot[0] == 0 && shoot[1] == 0) || (shoot[0] > 5 || shoot[1] > 5)){
System.out.println("You must enter a location greater than 0 and NOT over 5! ");
System.out.print("Enter Row: ");
shoot[0] = input.nextInt();

System.out.print("Enter Column: ");
shoot[1] = input.nextInt();
}

int temp1 = 0, temp2 = 0;
for (int row = 0; row < 25; row++){
for (int col = 0; col < 25; col++){
if (row == shoot[0] && col == shoot[1])
{
check[row][0] = shoot[0];
check[row][col] = shoot[1];
temp1 = row;
temp2 = col;
}
}
}

if (check[temp1][0] == ships[temp1][0] && check[temp1][temp2] == ships[temp1][temp2])
{
System.out.print("You have already entered that location!");
}

shoot[0]--;
shoot[1]--;

}

最佳答案

我不太确定你想做什么,但是,如果 shoot[0]shoot[1] 确实代表了 x 和 y拍摄地点如我所怀疑,那么也许就这么简单:

当您检查位置是否在可靠范围内时,您可以在所述位置将船舶设置为不同的状态:

船舶[射击[0]][射击[1]] = HIT;//如果这里没有船,则为 MISSED

或者你使用一个全新的阵列来记录枪击事件(我认为这就是你的意图):

hasAlreadyShot[shoot[0]][shoot[1]] = true;

取决于您的编程风格和选择。

然后,每当玩家选择新目标时,您都可以检查它是否不是之前的选择。

关于Java战舰检查命中位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23550200/

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