2014-01-17 333 views
0

我怎樣才能找回X和Y從用戶座標一個函數內?(用於Java遊戲需要的陣列座標)獲取座標

「的信息getX功能將詢問用戶的X座標,它將返回用戶輸入的數字,getY具有相同的功能,調整消息以詢問Y座標。

這是我需要遵循的功能。 需要使用返回值在2D數組中放置數字。 如何在一個功能中實現這一點?

board[x][y] = 1; 

編輯:我只能做一些多(計算測試,所以標記將不會被授予使用任何東西了,我們已經學到的東西 - AQA AS級別)的Java之內。 我需要在該函數中掃描用戶的輸入,並返回兩個座標以供二維數組在main中使用。

請告訴我,如果我感到困惑或者我沒有道理,我會盡力解釋。

如果沒有辦法這樣做,請告訴我。 JimiiBee

回答

0

實際獲得用戶輸入的資源非常豐富。 Check out this post。創建陣列我會做這樣的事情:

public int[] getCoord(int[] coords) { 
    coords[0] = getInt("Please enter x coordinate:"); 
    coords[1] = getInt("Please enter y coordinate:"); 
    return coords; 
} 

這被稱爲是這樣的:

coords = getCoord(coords); 

這將使用新值替換COORDS的舊值。

一個getInt方法是這樣的:

private int getInt(String prompt) { 
    Scanner scanner = new Scanner(System.in); 
    System.out.println(prompt); 

    int in = scanner.nextInt(); 
    scanner.close(); 
    return in; 
} 

當然,這可以合併成避免了掃描儀的反覆打開和關閉一個方法,但如果你在代碼中使用getInt()其他地方,這可能仍然是首選解決方案。

如果您被迫使用單獨的方法,我們寧願不必重複打開和關閉掃描器,而是從getCoord類傳遞掃描器。

public int[] getCoord(int[] coords) { 
    Scanner scanner = new Scanner(System.in); 
    coords[0] = getX(scanner, coords); 
    coords[1] = getY(scanner, coords); 
    scanner.close() 
    return coords; 
} 

和示例獲得方法:

private void getX(Scanner scanner, int[] coords) { 
    System.out.println("Please enter x coordinate:"); 
    coords[0] = scanner.nextInt(); //Change 0 index to 1 for getY 
} 
+0

二維數組已經生成,函數只需要在用戶通過掃描器放入數組的座標中放置一個值。 – JimiiBee

+0

然後而不是創建一個新的數組,傳入舊數組!我現在編輯以顯示我的意思。 – Scott

+0

我明白了。我需要做兩個函數才能爲2D數組獲得正確的座標。這隻適用於1d陣列的權利?我會以任何方式接受你的回答,因爲它讓我明白該怎麼做。 – JimiiBee

0

您可以返回一個2元素的數組,將這些值連接成一個用分隔符分隔的字符串,或者創建一個包含x座標和y座標的Dimension類。

String promptCoords() 
{ 
    return promptX() + ":" + promptY(); 
} 

int[] promptCoords() 
{ 
    return new int[]{promptX(), promptY()}; 
} 

Dimension promptCoords() 
{ 
    return new Dimension(promptX(), promptY()); 
} 

private class Dimension 
{ 
    int x, y; 

    Dimension(int x, int y) 
    { 
     this.x = x; 
     this.y = y; 
    } 
} 

int promptX(){return -1;} 
int promptY(){return -1;} 
+0

抱歉我要澄清,我只能用這麼多的Java中的遊戲(其除了我的計算過程中的測試)。所以我不相信我可以使用維度,我需要掃描用戶的x和y座標,並返回這些值以輸入已經創建的二維數組。 – JimiiBee