2016-11-09 109 views
0

如何防止用戶輸入二維數組中同一點的兩個值?防止用戶輸入在二維數組中重疊 - java

例如:在2D戰列艦作爲戰列艦遊戲板時,用戶可以輸入船舶起點的座標,然後輸入船舶指向的方向。顯然,兩艘船可以「 t重疊,那麼如果兩艘船重疊,你將如何發送錯誤信息?

我已經試過兩種方法: 我嘗試了數組中計數空的空間,但我沒有做的方法來檢查,然後新座標(它繼續爲無窮大)

方式我已經嘗試使用for循環來運行並找到在放置新船之前已經有一艘船的空間

而且我也嘗試過在main中爲這兩種方法執行while循環,但是很遠的一切嘗試都陷入混亂,我幾乎有心臟病發作,試圖找出我做錯了什麼

對不起,如果有一些簡單的解決方案,我沒有看到。這晚

感謝

+1

您可以在數組的每個單元格中存儲'Ship'對象。該對象將包含遊戲運行所需的元數據。 emtpy的單元格可以用'null'來表示。 –

回答

0

乾脆把用戶輸入和檢查,如果是特定的細胞爲空或不是因爲follows.If它是空,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");    
     }  
    } 

}