RangeError:超出最大调用堆栈大小的Javascript问题

时间:2019-11-12 08:17:17

标签: javascript

我正在尝试使用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 . . . 
. . . . . . . 
    . . .     
    . . .

0 个答案:

没有答案