Corey Richardson wrote:
Luke Paireepinart wrote:
If your code's more than 10 lines long or so, put it on pastebin.com <http://pastebin.com> and send us the link rather than inlining the whole thing. You could also send it as an attachment. Your formatting is all screwed up and I can't read the code at all, but I have an idea about your error.

Hmmm...thats odd. I didn't do anything different....but I can do that.http://pastebin.com/m518f612f

    <http://mail.python.org/mailman/listinfo/tutor>



The pastebin version of the code is substantially different than the original pasted version, and although the error message doesn't correspond to the posted code, at least there's enough to identify the particular error.

Line 21: playHp -= damage #Player takes damage (I think...I will have to work that out)

in the function monsAttk() is trying to modify a local variable playHp, without initializing it. Nowhere else in the function is that variable referenced or defined.

So you get a
UnboundLocalError: local variable 'playHp' referenced before assignment


What you undoubtedly meant to do is to subtract damage from the *global* variable playHp. But without a global declaration, that's not what happens. It tries instead to adjust a local variable by that name. And of course that local is unbound.

The "fix" could be to make the function look like this:

  1.
def monsAttk (damage, attack): #A monsters attack 2. global playHp #declare that we'll be modifying a
     global variable by this name, not defining a local
  3.
if attack > deff: #Monster hit 4.
             playHp -= damage #Player takes damage (I think...I will
     have to work that out)
  5.
             print "You have sustained", damage, "damage, with",
     damage-playHp, "remaining" #Inform player of their statu


I have to try hard to resist attacking your indiscriminate use of global variables. But you said to just help on the one problem....

DaveA
_______________________________________________
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor

Reply via email to