在Test类中创建新的多维数组

时间:2015-10-19 20:06:06

标签: java multidimensional-array chess

我正在制作国际象棋游戏,但我不知道如何制作测试类,并且在该测试类中创建一个新的数组和来自ChessClass的测试方法。

My Chess Table类,其中包含随机移动的方法     import java.util.Random;

public class Chess {

    boolean s [][] = new boolean[8][8];
    Knight kn;
    Random r = new Random();

    public void RandStart(){
        kn = new Knight(r.nextInt(), r.nextInt());
        s [kn.getX()][kn.getY()] = true;
    }


    public void print(){
        for(int i = 0;i < s.length;i++){
            for(int j = 0;j < s[i].length;j++){
                System.out.println(s[i][j]);
            }   
        }
    }



}

我唯一不知道的是如何使它在测试类中工作 我收到错误,我不能使用Chess类

中的方法
public class Test {

    public static void main(String[] args){
        Chess m = null;
        m = new Chess[5][5];
        m.RandStart();
    }
}

提前致谢

3 个答案:

答案 0 :(得分:2)

在您的main方法中,您尝试将二维Chess数组分配给普通Chess对象。

public class Test {

    public static void main(String[] args){
        Chess m = new Chess();
        m.RandStart();
    }
}

应该努力解决您的问题。

另外,我建议您将RandStart()更改为randStart()良好的编程习惯。

答案 1 :(得分:1)

欢迎使用Stack Overflow!

看起来您希望能够在测试时动态设置数组大小。您可以创建两个构造函数来实例化您的数组:

boolean s [][] = new boolean[8][8];
Knight kn;
Random r = new Random();

public Chess() {
  s = new boolean[8][8];
}

public Chess(boolean s[][]) {
  this.s = s;
}

这样你的测试就可以在构造函数中传入数组。只有几个尼特,使用一个更好的变量名称而不是&#39; s&#39;并且测试通常不使用main。查看Junit https://github.com/junit-team/junit/wiki/Getting-started

答案 2 :(得分:0)

我看到你正在尝试创建一个新的Chess对象,但你还远未这样做,因为m = new Chess[5][5];是创建多维数组而不是对象的语法。 但是这里是创建类国际象棋新对象的语法。

Chess m = new Chess();