回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我遇到列表索引错误,代码可能不是最清晰的。但是我只知道用python编写代码这么多,但我知道的足够编写一个游戏了。你知道吗</p>
<p>函数用于的代码:</p>
<pre><code>#Checks if the move counter is more than 3, if it is, the player gets to decide what he/she wants to do
if Moves != 0:
Do = input('What do you do? Help to see all commands ')
#Tests for if the player wants a magic spell
if Do == 'Magic':
if Moves == 3:
ListToDo = MagicDmg(ListToDo, Moves)
if ListToDo[0] == 'Ice' or 'Fire' or 'Bolt':
Mana = CheckMagicCost1(ListToDo, Mana, Moves)
else:
Moves = Moves - 1
elif Moves == 2:
ListToDo = MagicDmg(ListToDo, Moves)
Mana = CheckMagicCost2(ListToDo, Mana, Moves)
Moves = Moves - 1
else:
ListToDo = MagicDmg(ListToDo, Moves)
Mana = CheckMagicCost3(ListToDo, Mana, Moves)
Moves = Moves - 1
#This function does not handle damage
def MagicDmg(ListToDo, Moves):
print('Which magic? Ice, Fire or Bolt')
MagicDo = input()
if MagicDo != 'Ice' or 'Fire' or 'Bolt':
if MagicDo == 'Ice':
ListToDo.append('Ice')
elif MagicDo == 'Fire':
ListToDo.append('Fire')
elif MagicDo == 'Bolt':
ListToDo.append('Bolt')
else:
LIstToDo.remove(MagicDo)
print('That is not a valid spell')
Moves = Moves + 1
return(ListToDo)
#Subtracts the mana cost of spells from mana
def CheckMagicCost1(ListToDo, Mana, Moves):
if ListToDo[0] and Mana >= 10 == 'Ice':
Mana = Mana - 10
elif ListToDo[0] and Mana >= 15 == 'Fire':
Mana = Mana - 15
elif ListToDo[0] and Mana >= 25 == 'Bolt':
Mana = Mana - 25
else:
print('You do not have enough Mana')
Moves = Moves + 1
return(Mana)
def CheckMagicCost2(ListToDo, Mana, Moves):
if ListToDo[1] and Mana >= 10 == 'Ice':
Mana = Mana - 10
elif ListToDo[1] and Mana >= 15 == 'Fire':
Mana = Mana - 15
elif ListToDo[1] and Mana >= 25 == 'Bolt':
Mana = Mana - 25
else:
print('You do not have enough Mana')
Moves = Moves + 1
return(Mana)
def CheckMagicCost3(ListToDo, Mana, Moves):
if ListToDo[2] and Mana > 9 == 'Ice':
Mana = Mana - 10
elif ListToDo[2] and Mana > 14 == 'Fire':
Mana = Mana - 15
elif ListToDo[2] and Mana > 24 == 'Bolt':
Mana = Mana - 25
else:
print('You do not have enough Mana')
Moves = Moves + 1
return(Mana)
</code></pre>
<p>结果是:</p>
<pre><code>A Azure Drake appeared! With 500 HP!
HP = 250 Mana = 250
Moves left: 3
Boss's HP: 500
What do you do? Help to see all commands Magic
Which magic? Ice, Fire or Bolt
i (False spell)
Traceback (most recent call last):
File "D:\Python\Battle Test V2.py", line 186, in <module>
if ListToDo[0] != 'Ice' or 'Fire' or 'Bolt':
IndexError: list index out of range
</code></pre>