-2

私はpython 3.3.2でテキストベースのゲームを作っています.ランダムな選択の後に2つの質問が必要です.これは私のコードです:

if attack_spider == "Y":
    attack = ['Miss', 'Miss', 'Miss', 'Miss', 'Hit']
    from random import choice
    print(choice(attack))
    messages = {
        "Miss": "You made the spider angry! The spider bites you do you attack it again? Y/N",
        "Hit": "You killed the spider! It's fangs glow red do you pick them up? Y/N!"
    }

    print(messages[choice(attack)])

次のように入力すると、天気が当たったり外れたりすることに応じて、さまざまな質問ができるようになります。

spider = input()
if spider == "Y":
    print("as you pick the fangs up the begin to drip red blood") 

クモを怒らせることとは何の関係もありません。ヒットかミスかで異なる答えを得る方法があります。

以下の回答からコードを追加しました。

               if attack_spider == "Y":
                   attack = choice(attack)
                   attack = ['Miss', 'Miss', 'Miss', 'Miss', 'Hit']
                   from random import choice
                   print (choice(attack))
                   messages = {
                       "Miss": "You made the spider angry! The spider bites you do you attack it again? Y/N",
                       "Hit": "You killed the spider! It's fangs glow red do you pick them up? Y/N!"
                   }

                   print(messages[choice(attack)])
                   spider = input()
                   if spider == "Y":
                       if attack == "Hit":
                           print("As you pick the fangs up the begin to drip red blood")

                       if attack == "Miss":
                           print("As you go to hit it it runs away very quickly")

                   if spider == "N":
                       if attack == "Hit":
                           print("As you walk forward and turn right something flies past you")

                       if attack == "Miss":
                           print("The spider begins to bite harder and you beging to See stars")

私はこのエラーが発生することを知っています:

    Traceback (most recent call last):
      File "C:\Users\callum\Documents\programming\maze runner.py", line 29, in <module>
        attack = choice(attack)
    NameError: name 'choice' is not defined
4

1 に答える 1

1

print(choice(attack))最初に変数に割り当てる必要があります。

hit_or_miss = random.choice(attack)
print(hit_or_miss)

そして、あなたはすることができます

if spider == "Y":
    if hit_or_miss == "Hit":
        print(...)

    if hit_or_miss == "Miss":
        print(...)

if spider == "N":
    if hit_or_miss == "Hit":
        print(...)

    if hit_or_miss == "Miss":
        print(...)

すでに辞書を知っているので、これも実行できます。

responses = {
    ("Y", "Hit"):  ...,
    ("Y", "Miss"): ...,
    ("N", "Hit"):  ...,
    ("N", "Miss"): ...
}

print(responses[spider, hit_or_miss])
于 2013-09-28T11:38:01.587 に答える