Kris Mesenbrink wrote: > import random > > def player(): > hp = 10 > speed = 5 > attack = random.randint(0,5) > The net resut of this function is nothing. It assigns values, then they're lost when the function returns. A function is the wrong way to deal with these three names.
> def monster (): > hp = 10 > speed = 4 Same here. > > def battle(player): You probably want to have two parameters, player and monster > print ("a wild mosnter appered!") > print ("would you like to battle?") > answer = input() > if answer == ("yes"): > return player(attack) > else: > print("nope") This function makes no sense to me. A function should have three well-defined pieces: what are its parameters, what does it do, what are its side-effects, and what does it return. This function is confusing on all of those. > > > battle() > > > ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ > > this was a variation on a code that you guys already had helped me with,in > the long run i plan to incorporate them together but as it stand i don't know > how to call a specific variable from one function (attack from player) to use > in another function (battle). what i want is to be able to use the variables > from both player and monster to use in battle. any idea's? What you should want is a class for each type of character. At its simplest, the class can be a storage place for related named attributes. You could make a class Player, which defines attributes called hp, speed, and attack. Then later on you can refer to one of those attributes with synatax like james.attack class Player: def __init__(self): self.hp = 10 self.speed = 5 self.attack = random.randint(0,5) Now, you create a player by james = Player() and the monster by behemoth = Monster() and you pass them into the function battle, by result = battle(james, behemoth) Inside the function, you'd say player.attack to see that random value. And monster.speed to see behemoth's speed. -- DaveA -- http://mail.python.org/mailman/listinfo/python-list