Java递归函数,其中包含两个for循环
在我的程序中,最重要的部分是用一些对象填充数组 这些物体是棋盘上的主教。有其他的功能来放置主教和它攻击的地方,或者决定董事会是否正确填充 在前两个循环结束时,电路板被填满,并返回到前一个状态,在此状态下进行下一次尝试 问题是,不知何故,它使用的不是旧的数组,而是最后一个数组,因此数组不断累积数字,而不是生成所有可能的选项。我做错了什么 编辑:Java递归函数,其中包含两个for循环,java,recursion,Java,Recursion,在我的程序中,最重要的部分是用一些对象填充数组 这些物体是棋盘上的主教。有其他的功能来放置主教和它攻击的地方,或者决定董事会是否正确填充 在前两个循环结束时,电路板被填满,并返回到前一个状态,在此状态下进行下一次尝试 问题是,不知何故,它使用的不是旧的数组,而是最后一个数组,因此数组不断累积数字,而不是生成所有可能的选项。我做错了什么 编辑: 我想我必须提到的是,在结果中,这两个人应该是怎样的。在这之后,这一个被计数,其中没有零,并且CheckGoDestAnd返回一个1 int Sol
我想我必须提到的是,在结果中,这两个人应该是怎样的。在这之后,这一个被计数,其中没有零,并且CheckGoDestAnd返回一个1
int SolveBoard(int m,int n,int d,int l) {
int[][] field = new int[m][n]; // this is the m*n schaakbord. int is standaard 0.
// probleem opgelost
System.out.println("aantal lopers: " + l);
int GoedeStand = Recursie(field,0,0, m, n, d, l);
PrintFieldImage(field);
return GoedeStand;
}
//deze fuctie is alleen gekoppeld saan SolveBoard()
int Recursie(int[][] field, int LopersSet, int AGB, int m, int n, int d, int l) {
int mcount, ncount;
int[][] fieldC = field;
//de rekenlus
// 0 is leeg, 1 is aangevallen, 2 is lopers plaats, 3 is dame haar plaats
if (LopersSet < l) {
LopersSet++;
for (mcount = 0; mcount < m; mcount++) {
for (ncount = 0; ncount < n; ncount++) {
//if (field[mcount][ncount] <= 1) {
fieldC = PlaatsLoper(fieldC, m, n, mcount, ncount);
//nu de recursie, eerst kopie maken van bord zodat deze niet verloren gaat
AGB = Recursie(fieldC, LopersSet, AGB, m, n, d, l);
//}
}
}
} else {
PrintFieldImage(field);
}
if (CheckGoedeStand(field, m, n) == 1 && LopersSet == l) {
//PrintFieldImage(field);
AGB++;
//field = new int[m][n];
}
return AGB;
}
我想我必须提到的是,在结果中,这两个人应该是怎样的。在这之后,这一个被计数,其中没有零,并且CheckGoDestAnd返回一个1。代码中的注释是什么语言的?很抱歉,这些注释不可用。他们是荷兰人,很好;谷歌翻译提供。
[2, 0]
[0, 1]
[2, 2]
[1, 1]
[2, 2]
[2, 1]
[2, 2]
[2, 2]
[2, 2]
[2, 2]
[2, 2]
[2, 2]
[2, 2]
[2, 2]
[2, 2]
[2, 2]
[2, 2]
[2, 2]
[2, 2]
[2, 2]
[2, 2]
[2, 2]
[2, 2]
[2, 2]
[2, 2]
[2, 2]
[2, 2]
[2, 2]
[2, 2]
[2, 2]
[2, 2]
[2, 2]
[2, 2]
[2, 2]
AGB= 19