[英]preventing overlap of user input in a 2D array - java
如何防止用户在2D数组中为同一点输入两个值?
例如:当在战舰游戏中使用2D阵列作为游戏板时,用户可以输入飞船起点的坐标,然后输入飞船指向的方向。显然,两艘飞船不能重叠,因此如果两艘船重叠,您将如何发送错误消息?
我尝试了两种方法:我已经尝试计算数组中的空白空间,但是我无法制作一种方法来检查新坐标(它会一直延续到无穷大)
我尝试过使用for循环来遍历并找到放下新船之前已经有船的空间
而且我还尝试了对这两种方法进行do while循环,但是到目前为止,所有尝试都陷入了混乱,而且我几乎心脏病发作了,试图找出我做错了什么
抱歉,有没有我看不到的简单解决方案。 晚了
谢谢
只需接受用户输入并检查该特定单元格是否为空,如下所示。如果为空且x,y是有效填充,则该单元格将显示错误消息。
public class Cell {
int x;
int y;
public Cell(int x, int y){
this.x = x;
this.y = y;
}
public static void main(String args[]){
Cell board[][] = new Cell[5][5];//We have 5*5 board, so total 25 cells
Scanner sc= new Scanner(System.in);
for(int i=0;i<25;i++){
int x= sc.nextInt();
int y = sc.nextInt();
if(x<5 && y< 5 && board[x][y] == null)
{
Cell cell = new Cell(x, y);
board[x][y] = cell;
}
else
System.out.println("Invalid Input");
}
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.