1

私はPythonで簡単なブラックジャックゲームを作ろうとしていて、行き詰まっているようです。私のコードは次のとおりです。

from random import choice

def deck():
    cards = range(1, 12)
    return choice(cards)

def diack():
    card1= deck()
    card2 = deck()
    hand = card1 + card2
    print hand
    if hand < 21:
         print raw_input("Would you like to hit or stand?")
         if "hit":
             return hand + deck()
         elif "stand": 
             return hand

実行すると「ヒット」で動作するように見えますが、「スタンド」と入力すると「ヒット」でも動作するようです。おそらくお分かりのように、私はプログラミングに非常に慣れていません。私のゲームを機能させる方法について、私を正しい方向に向けるのを手伝ってもらえますか(コードをできるだけ多く使用したいと思います)。

4

2 に答える 2

5

if "hit"文字列が存在するかどうかをテストするだけで、"hit"存在します。したがって、elifステートメントは実行されません。

変数にユーザー入力をキャプチャし、代わりにそれに対してテストする必要があります。

choice = raw_input("Would you like to hit or stand?")
print choice
if choice == "hit":
    return hand + deck()
elif choice == "stand": 
    return hand
于 2012-09-28T20:24:47.003 に答える
4

インデントが正しいと仮定すると、次のようになります。

print raw_input("Would you like to hit or stand?")
if "hit":
    return hand + deck()
elif "stand": 
    return hand

文字列が真であるifかどうかをチェックしているだけです。"hit"空でない文字列はすべてtrueであり、"hit"空ではないため、これは常に成功します。

あなたが欲しいものはこのようなものです:

cmd = raw_input("Would you like to hit or stand?")
if cmd == "hit":
    return hand + deck()
elif cmd == "stand": 
    return hand

今、あなたはの結果があなたが望むものでraw_inputある文字列"hit"であるかどうかをチェックしています。

于 2012-09-28T20:24:18.787 に答える