我一直在這個大酒杯問題上learnstreet:的21點遊戲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);
}
}
的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)< N)向我解釋
?
@AlienArrays這不是一個函數中的兩個返回值。 'getstrategy'返回一個匿名函數,返回一個布爾值'countpoints(currenthand)
crush