[英]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.