Я работаю над этой проблемой блэкджек на learnstreet:JavaScript функция объяснение игры Блэкджек
http://www.learnstreet.com/cg/simple/project/blackjack#get-hint
Я застрял на последнем методе getStrategy() - вот описание того, как задача состоит в том, чтобы быть завершено:
«Этот метод имитирует стратегию дилера, так что он знает, когда нужно ударить и когда стоит стоять, т. е. когда нужно принять еще одну ничью из колоды и рискнуть« разориться »и сломать 21, или остановиться с текущая рука и надеясь, что его противник не побьет его номер.
Это специальная функция, в которой он возвращает объект, который является самой функцией. (Как это для ума?) Он принимает «n», целочисленный балл руки дилера, в этот момент стратегия дилера должна ударить или встать. (Блэкджек-дилеры обычно получают хиты, когда его карты составляют менее 17 пунктов, поэтому в этом случае n будет 17.)
Что нужно вернуть в этом методе, должно быть в форме «return function (currenthand) { };» где вы заполняете то, что находится внутри фигурных скобок ({}). Текущая рука будет подаваться в вызов функции, и вам нужно будет написать некоторую логику, где дилер сравнивает точки текущей руки с «п» «
LearnStreet реализован getSrategt() следующим образом:.
function getstrategy(n) {
return function(currenthand) {
return (countpoints(currenthand) < n);
}
}
метод
getStrategy() вызывается в методе applyStrategy так:
/*
This function applies the strategy you define in getstrategy(n): DON'T CHANGE
*/
function applystrategy(hand, n) {
var strat = getstrategy(n);
return strat(hand);
}
Может кто-нибудь, пожалуйста, объясните мне, почему мы возвращаемся (countpoints (currenthand) < п)
?
@AlienArrays Это не два возврата в одной функции. 'getstrategy' возвращает анонимную функцию, которая возвращает сравнение' countpoints (currenthand)
crush