2014-01-17 272 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