检查2D阵列是否包含此字段或是否未定义

时间:2015-03-13 15:50:44

标签: java arrays matrix

目前正在为我的大学上一个任务开展一个小游戏。 我目前的问题是游戏牌是2D Array of Cells(自制级)。该板是使用我读入的txt.file创建的。现在有多个命令可供用户输入。一个命令是创建一个新的游戏对象并使用特定的x和y参数将其放在板上。 有没有办法检查该字段是否足够大,除了这个参数之外还输入了参数:

try {
        gameField.getField()[Integer
        parseInt(splittedCom[1])][Integer
        parseInt(splittedCom[2])].getStatus();
    } catch (ArrayIndexOutOfBoundsException e) { 
        Terminal.printLine("Error, this cell isn't in the gameField");
    }

我正在使用它来检查另一个命令。有没有办法在没有异常的情况下使用它?

2 个答案:

答案 0 :(得分:1)

由于您的数组已经构建,因此您应该已经拥有数组的维度,因此您将使用gameBoard.length作为宽度,使用gameBoard[0].length作为高度,并使用它们与其进行比较是用户提供的。

编辑:根据您的问题:

如果您可以访问gameBoard对象,则无需保存它们,因为该信息可通过gameBoard对象本身获得。或者,您必须以某种方式坚持它们。请注意,虽然您浪费一些额外的内存来存储值,但抛出异常也会产生成本,应该避免(在这种情况下)。您希望用户提供不正确的值的情况不属于异常情况的标准,因为这是您期望的。

答案 1 :(得分:0)

检查输入,只要它适合您的游戏场。

boolean checker = false;
    while(!checker){
     if( /* check if the input is inside the gamefield */){
        checker = true;
        }
    }