I try to make a little text based rpg with python. And the first thing that I want to make is an input to equip armor or weapons.
def find_armor(x):
if x=="bad armor":
armor=bad_armor
if x=="good armor":
armor=good_armor
##item
armor=[0,0]
bad_armor=["bad armor",300]
good_armor=["good armor", 500]
##choose
option1,option2=input(">").split(" ",1)
if option1=="equip":
find_armor(option2)
##ui
armor_name=armor[0]
armor_point=armor[1]
print("your armor:",armor_name,armor_point)
So here is the problem:
my function find_armor is not calling whatever I enter.
If my first word is “equip” the output is always: your armor: 0 0
Advertisement
Answer
In a function, variables change with local scope. Then use global armor before. And fixing the bad indentation:
def find_armor(x):
global armor
if x=="bad armor":
global bad_armor
armor=bad_armor
elif x=="good armor":
global good_armor
armor=good_armor