我正在制作国际象棋游戏,但我不知道如何制作测试类,并且在该测试类中创建一个新的数组和来自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();
}
}
提前致谢
答案 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();