二十一点游戏的JavaScript函数说明

时间:2014-01-06 14:16:52

标签: javascript

我一直在学习这个二十一点问题:

http://www.learnstreet.com/cg/simple/project/blackjack#get-hint

我被困在最后一个方法getStrategy() - 这里是关于如何完成任务的描述:

“这种方法可以模拟经销商的策略,这样他就可以知道何时击中以及何时站立 - 即何时接受来自牌组的另一次抽牌并冒险”破产“并打破21,或者用当前牌停下来并希望他的对手不会打败他的号码。

这是一个特殊功能,它返回一个函数本身的对象。 (疯狂怎么样?)它接受'n',即经销商手牌的整数分数,此时经销商的策略是击中或站立。 (当他的牌总数少于17分时,二十一点经销商通常会点击,因此在这种情况下n将是17。)

此方法需要返回的内容应采用“return function(currenthand){};”的形式在哪里填写大括号内的内容({})。当前指针将被提供给函数调用,你需要编写一些逻辑,经销商将当前指针的点数与'n'进行比较。“

LearnStreet以这种方式实现了getSrategt():

function getstrategy(n) {
    return function(currenthand) {
        return (countpoints(currenthand) < n);
    }
}

在applyStrategy方法中调用getStrategy()方法,如下所示:

/*
This function applies the strategy you define in getstrategy(n): DON'T CHANGE
*/
function applystrategy(hand, n) {
    var strat = getstrategy(n);
    return strat(hand); 
}

任何人都可以向我解释我们为什么要回来(计数点(当前)&lt; n)?

1 个答案:

答案 0 :(得分:1)

countpoints(currenthand)将返回手中的点数。 n17,其中,如果当前点数小于,则经销商将再次点击。基本上,如果当前点数小于17,则继续播放,如果等于或大于等于,则停止播放。