球拍:评估 Blackjack 中的一手牌

问题描述 投票:0回答:1

我正在尝试在 DrRacket 中创建一个函数来评估二十一点玩家的手牌。然而,当我使用以下代码时:

(define (eval-hand hand)
  (let ([numAces 0] [ttl 0])
    (for/list ([i hand])
      (cond
        [(empty? hand) ttl]
        [(equal? (car i) 'A) (add1 numAces)]
        [(integer? (car i)) (+ (car i) ttl)]
        [else (+ ttl 10)]
        )))
)

(define playerhand '((2 Diamonds) (4 Clubs)))
(display (eval-hand playerhand))

我得到

(2 4)
作为我的答案。我究竟做错了什么?请尽快回复。

racket
1个回答
0
投票

您的 for/list 函数返回一个列表而不是单个值,这似乎就是您想要的。您应该尝试使用 Racket 内置的 for/sum 函数。

© www.soinside.com 2019 - 2024. All rights reserved.