我正在尝试创建一个模拟战斗的功能。到目前为止,我有一个列表,其中一个随机选择其中一个我在另一篇文章中找到的。当我选择相应的单词时,我似乎无法创建一个if
语句打印出“Hit!”或“Dodge!”或“Critical Hit!”,因为它因任何原因而出现语法错误。谁能帮我?我该怎么办才能发表if
声明?
Health = 10
dodge = 1
dmg = 1
hit = dmg + 1
crhit = hit * 2
def fight():
while 1 == 1:
global Health
global dodge
global hit
global dmg
chances = [hit, hit, dodge, crhit, hit]
from random import choice
fight()
答案 0 :(得分:2)
您只有导入功能选项,您仍然需要调用:
from random import choice # This makes it so we can use the function in the script.
Health = 10
dodge = 1
dmg = 1
hit = dmg + 1
crhit = hit * 2
def fight():
while 1:
mychoice = choice(chances) # We call the function. It gets a random value from the list
if mychoice == hit: # Create an if/elif for each possible outcome
dostuff()
elif ...
fight()
然后你可以使用if/elif
结构来处理每个选项
此外,不需要那些global
语句,因为您实际上并没有自己修改变量(除非您打算稍后再这样做)。
while 1 == 1
可以简单地写成while 1
,因为它也可以被视为True
。
答案 1 :(得分:0)
我不会放弃整个答案,因为你应该这样做,但是random.choice(testList)
从列表中返回一个随机元素,你可以使用它们从hit
获得一个, dodge
和crhit
。您可以编写三个if-elif
语句来检查每个语句。简短的例子(你应该从这里得到答案),
>>> varOne = 2
>>> varTwo = 3
>>> varThree = 4
>>> from random import choice
>>> testVar = choice([varOne, varTwo, varThree])
>>> if testVar == varOne:
print 'abc'
elif testVar == varTwo:
print 'def'
else:
print 'ghi'
abc