2

私の質問が具体的でない場合、またはタイトルが誤解を招く場合は申し訳ありませんが、Python 2.7 でゲームを作成しようとしています。これまでのところすべて順調に進んでいますが、問題が 1 つあります。構文エラーが発生し、それを修正する方法がわかりません。エラーは次のように述べています:「プログラムにエラーがあります: *リテラルに割り当てることはできません (テキスト game.py、28 行目)」

print """
---------------------------------------------
|                                           |
|     TEXT GAME: THE BEGINNING!             |
|                                           |
---------------------------------------------
"""
print "What is your name adventurer?"
adv_name = raw_input("Please enter a name: ")
print "Welcome " + adv_name + ", I am called Colosso. I am the great hero of the town Isern. \nWhile I was protecting the surrounding forests I was attacked and killed. \nNow I am nothing but a mere spirit stuck in the realm of Life. \nI am here because I swore to slay the corrupt great king Blupri. \nBlupri still lives therefore I cannot travel to the realm of Death. \nI need you to slay him and his minions so I may rest in peace"
print """Do you want to help Colosso?:
1.) Yes (Start playing)
2.) No (Quit)
"""
dside = input("Please enter a number to decide: ")
if dside == 2:
    print "I knew you were a coward..."
    raw_input('Press Enter to exit')
elif dside == 1:
    print "Great! Let's get this adventure started"
    raw_input('Press Enter to continue')
print """This is the tutorial level, here is where you will learn how to play.
To move the letter of a direction, n is north, e is east, s is south, w is west.
Press the '<' key to move up and the '>' key to move down.
Try it!
"""
move = raw_input('Where would you like to go?: ')
"n" = 1
"e" = 2
"s" = 3
"w" = 4
"<" = 5
">" = 6
if move == 1:
    print "You move north."
if move == 2:
    print "You move east."
if move == 3:
    print "You move south."
if move == 4:
    print "You move west."
print move

引用符と一重引用符を付けずに試してみましたが、どちらも機能しません。助けやアドバイスをいただければ幸いです。

4

2 に答える 2

2

Robの言うとおりです。また、コードの次の行もあまり意味がありません。

私はちょうどそれをお勧めします:

move = raw_input('Where would you like to go?: ')

if move == 'n':
    print "You move north."
elif move == 'e':
    print "You move east."
elif move == 's':
    print "You move south."
elif move == 'w':
    print "You move west."

または、何らかの理由で入力を数値にマッピングしたい場合は、辞書を作成することを検討してください。

directions = {"n": 1, "e": 2, "s": 3, "w": 4, "<": 5, ">": 6}

次に、次のことができます。

if directions[move] == 1:
     # etc
于 2012-06-02T20:27:54.877 に答える
1

"n" は Python によって文字列リテラルとして解釈されます。つまり、それ自体が値であり、値を別の値に割り当てることはできません。の左側のトークンは=変数である必要があります。

28 行目の n の周りの二重引用符を削除することをお勧めします。Python コーダーではありませんが、それは私が本能的に行うことです。

于 2012-06-02T20:18:48.590 に答える