调用堆栈增加javascript

时间:2013-06-02 12:52:40

标签: javascript callstack

我写了一个二十一点脚本,我想以递归方式迭代,直到一个相当大的资金用完为止。我想对遥测进行分析。这是一个本地生活的脚本,除了我正在运行的浏览器环境之外,对任何事情都没有任何危险。

基本上,脚本假定是递归的,直到现金用完为止。它适用于大约5k左右的单手左右 - 对于高达10k的资金,然后它会抛出最大调用堆栈错误。但是,我需要更多的数据;喜欢> 100k手。

我搜索了SO的解决方案,我收集它是一个特定于浏览器的东西。任何想法都会非常感激!

附加的代码段:

function main() {
init();
if (bankRoll >= initialBet) {
    determineBet();
}
else {
    alert("Not enough moneyz to play!");
    console.log("telemetry");
    exitFunction();
}
bankRoll -= initialBet;
playTheGame(); // the whole game, betting, receiving cards, strategy etc
}

1 个答案:

答案 0 :(得分:1)

我建议你使用循环:

function main() {
    init();
    while (bankRoll >= initialBet) {
        determineBet();
        bankRoll -= initialBet;
        playTheGame(); // the whole game, betting, receiving cards, strategy etc
    }
    alert("Not enough moneyz to play!");
    console.log("telemetry");
    exitFunction();
}

我很难说我是否正确地重构了它,因为我不知道playTheGamedetermineBet这样的功能,但我希望你明白这一点。