哪里是代码,我想采取勇士turnorder,祭司turnorder和敌人turnorder,与函数内的值。
def initiative_phase(): #Function for setting the turn order
WarriorTurnOrder = 0
PriestTurnOrder = 0
enemy_turnOrder = 0
WarriorTurnOrder = WarriorTurnOrder + random.randint(0,20) + warrior[4] #Random Value for the Warrior's turn number
PriestTurnOrder = PriestTurnOrder + random.randint(0,20) + priest[4] #Random Value for the Priest's turn number
enemy_turnOrder = enemy_turnOrder + random.randint(0,20) + vampire[4] #Random Value for the Vampire's turn number
print("nThe warrior got " + str(WarriorTurnOrder))
print("The vampire got " + str(enemy_turnOrder))
print("The priest got " + str(PriestTurnOrder))
我试图做一个系统的回合顺序,但它总是给我一个错误或0在每个值。
def first_turn():
if (WarriorTurnOrder > enemy_turnOrder) and (WarriorTurnOrder > PriestTurnOrder): #Warrior first
warrior_turn()
elif (PriestTurnOrder > enemy_turnOrder) and (PriestTurnOrder > WarriorTurnOrder): #Priest first
priest_turn()
elif (enemy_turnOrder > WarriorTurnOrder) and (enemy_turnOrder > PriestTurnOrder): #Enemy goes first
enemy_turn()
elif (WarriorTurnOrder == enemy_turnOrder) or (WarriorTurnOrder == PriestTurnOrder): #In case of draw return to turn order
initiative_phase()
elif (PriestTurnOrder == enemy_turnOrder) or (PriestTurnOrder == WarriorTurnOrder): #In case of draw return to turn order
initiative_phase()
elif (enemy_turnOrder == WarriorTurnOrder) or (enemy_turnOrder == PriestTurnOrder): #In case of draw return to turn
initiative_phase()
def second_turn():
if (WarriorTurnOrder > enemy_turnOrder) and (WarriorTurnOrder < PriestTurnOrder): #Warrior second
warrior_turn()
elif (PriestTurnOrder > enemy_turnOrder) and (PriestTurnOrder < WarriorTurnOrder): #Priest second
priest_turn()
elif (enemy_turnOrder > WarriorTurnOrder) and (enemy_turnOrder < PriestTurnOrder): #Enemy second
enemy_turn()
def third_turn():
if (WarriorTurnOrder < enemy_turnOrder) and (WarriorTurnOrder < PriestTurnOrder): #Warrior third
warrior_turn()
elif (PriestTurnOrder < enemy_turnOrder) and (PriestTurnOrder < WarriorTurnOrder): #Priest second
priest_turn()
else: #Enemy third
enemy_turn()
你在函数中声明的所有变量都是局部变量。在函数中使用global variable
。例如:global WarriorTurnOrder
。对所有3个变量都这样做,它应该像你想的那样工作。
def initiative_phase(): #Function for setting the turn order
global WarriorTurnOrder
global PriestTurnOrder
global enemy_turnOrder
WarriorTurnOrder = 0
PriestTurnOrder = 0
enemy_turnOrder = 0
WarriorTurnOrder = WarriorTurnOrder + random.randint(0,20) + warrior[4] #Random Value for the Warrior's turn number
PriestTurnOrder = PriestTurnOrder + random.randint(0,20) + priest[4] #Random Value for the Priest's turn number
enemy_turnOrder = enemy_turnOrder + random.randint(0,20) + vampire[4] #Random Value for the Vampire's turn number
print("nThe warrior got " + str(WarriorTurnOrder))
print("The vampire got " + str(enemy_turnOrder))
print("The priest got " + str(PriestTurnOrder))
方法2(更好的做法):使用变量作为函数参数,并在函数结束时添加return
语句,其中包含所有3个变量的元组或列表(这将返回一个元组或带有其值的列表)。您可以稍后在其他函数中传递这些值。
def initiative_phase(): #Function for setting the turn order
WarriorTurnOrder = 0
PriestTurnOrder = 0
enemy_turnOrder = 0
WarriorTurnOrder = WarriorTurnOrder + random.randint(0,20) + warrior[4] #Random Value for the Warrior's turn number
PriestTurnOrder = PriestTurnOrder + random.randint(0,20) + priest[4] #Random Value for the Priest's turn number
enemy_turnOrder = enemy_turnOrder + random.randint(0,20) + vampire[4] #Random Value for the Vampire's turn number
print("nThe warrior got " + str(WarriorTurnOrder))
print("The vampire got " + str(enemy_turnOrder))
print("The priest got " + str(PriestTurnOrder))
#the order of these variables is the order you need to unpack them
return (WarriorTurnOrder, PriestTurnOrder, enemy_turnOrder)
解压这些值:
WarriorTurnOrder, PriestTurnOrder, enemy_turnOrder = initiative_phase()
其他函数应该这样定义:
def function(WarriorTurnOrder, PriestTurnOrder, enemy_turnOrder):
#put your code here