簡體   English   中英

防止用戶輸入在2D數組中重疊-Java

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM