我正在尝试使用javascript解决PEG纸牌游戏。但是当我尝试执行函数递归时,我得到的错误是
RangeError:超出了最大调用堆栈大小。
对这个问题有想法的人。请帮助
function findSolution() {
if (numberOfPegs == 1 && myBoard[3][3] == "*") {
console.log("Solution found")
printBoard(myBoard)
return true;
} else {
for (let i = 0; i < height; i++) {
for (let k = 0; k < width; k++) {
for (let dire = 0; dire < 4; dire++) {
if (letsMove(i, k, directions[dire])) {
numberOfPegs--;
printBoard(myBoard)
}
//The error is here when I try to do function recursive
if (findSolution()) {
return true;
}
if (backStep(i, k, directions[dire])) {
numberOfPegs++;
}
}
}
}
return false;
}
}
输入
o o o
o o o
o o o o o o o
o o o . o o o
o o o o o o o
o o o
o o o
输出
. . .
. . .
. . . . . . .
. . . o . . .
. . . . . . .
. . .
. . .