ブラックジャックをプレイしているとき、ディーラーはエースが1または11であることを知っていますが、1として再生する機会が来たら、例えば:ブラックジャックプログラム、Ace値を認識しているディーラーに問題がある[python]
は2枚のエースから始め、あなたが技術的には2、12、または22
いずれかのディーラーが取得する最初のカードはジャックであると言うことができますがあります。
したがって、あなたは12,22、または32のいずれかを持っています。したがって、コンピュータは12の態度を保ち、それを22にして敗北させます。私はエースのための私の値を定義し、私はそれが私のelifの声明ではかなり確信しているが、それ以外は何も私は作品を試していないところ
は、ここでは、コード
def evaluateHand(self, dHand):
DValue = 0
for card in dHand:
rank = card.getRank()
if rank > 10:
rank = 10
elif rank == 1 and DValue + 11 <= 21:
rank = 11
DValue = DValue + rank
return DValue
はここにありますです。 提案がありますか?
小さな提案:変更 'card.getRank()'の代わりにプロパティを使用しますそれを「ランク」と呼ぶ。カードの評価(1〜10)を処理する 'hand_value'という新しいプロパティを作成します。あなたのカードはどれくらいの価値があるか知っていて、あなたの手は彼らのランクが何であっても気にしないはずです(エースは特別なケースでなければなりません) –
[this](https: //gist.github.com/NotTheEconomist/74d2369f144852141054b9cd11195789) –