Corey Richardson wrote:
Here is my code that is being used/affected by the block that is erroring. The rest is superfluous, and does not affect it:

Something is screwy.
def monsAttk (damage, attack,playHp): # function expects 3 arguments
monsAttk(4, 15) # passes 2 arguments

That should raise TypeError: monsAttk() takes exactly 3 argument (2 given)
So something else is awry.
BTW the fact that you assigned playHp = 20 has no effect in the function. You redefined playHp as a local variable in the def statement.

   intel = 10  #Define the abilities.
   strn = 10
   con = 10
   dex = 10
   wis = 10
   exp = 0
   cha = 10
   playHp = 20
   melWep = 1 # A sword
   rngWep = 1 #A bow
   attack = dex+strn/2 #If they hit!
   melDmg = strn+1+melWep/2 #Melee damage
   deff = (con/3)+(dex/2)+6 #Defense
   rngDmg = dex+1+rngWep/2 #Ranged damage
   print "You are hiking through the woods one day, and you are jumped
   by a goblin!" #The beginning of the adventure
   print "Do you want to 1. Attack w/sword, 2. Attack w/bow, 3. Flee,
   or 4. Nothing"
   gob1Hp = 10 #First monsters hitpoints
def monsAttk (damage, attack,playHp): #A monsters attack if attack > deff: #Monster hit playHp -= damage #Player takes damage (I think...I will have
   to work that out)
           print "You have sustained", damage, "damage, with",
   damage-playHp, "remaining" #Inform player of their status
         def gmAttack(monHp, monDef, monAgil) :  #A player attack
       op1 = raw_input("Your choice?")
       while op1 != "5":   #Just a loop that you can break out of
   (possibly...working that out)             if op1 == '1': #Option 1
               if attack + 10  > monDef : #If the player hits
                   monHp-= melDmg  #Monster takes damage
                   print "you did", melDmg, "damage! It now has",
   monHp, "health left!" #Inform player how much health it has.
monsAttk(4, 15) #Monster attacks elif op1 == '2': #Option 2 if attack + 10 >monDef: #If you hit the monster
                   monHp -= rngDmg  #Monster takes damage
                   print "you did", rngDmg, "damage! It now has",
monHp, "health left!" #Inform player how much health it has monsAttk(4, 15) #Monster attacks
           elif op1 == '3' : #Option 3
if attack + dex > monAgil : #If they can escape print "Thou hast fled!" #They have fled!
               break #Stop the loop (I think. Can someone please inform
me as of how this works? I have looked online...it makes no sense to me)
           elif op1 == '4' : #Option 4...the dumb one
               monsAttk(4, 15)  #Monster attacks
               monsAttk(4,15) #Monster attacks again, cause they are dumb
print "You should attack..." #Inform them of their stupidity
           else : #Well, what the hell did they pick?
               print "Unknown option, try again!" #Inform them they
   didn't pick a valid option
   while gob1Hp >= 0: #Well it is still alive
       gmAttack(gob1Hp,13,15) #player attacks
   if gob1Hp <= 0.5 : #if it dies
       print "Gratz! You have gotten 5 exp! You only have", 100-exp,
   "exp left till lv 1!" #print their experience
       exp += 5 #Give them exp


If you catch an error besides what is wrong, please don't point it out, as I would like to work it out myself, unless marked in the comments. But this one is evading me...I have playHp defined at the beginning, and I am getting this error :

   Traceback (most recent call last):
     File "C:\Users\Quick-Start\Documents\Python Doc's\Game_File.py",
   line 183, in <module>
       gmAttack(gob1Hp,13,15)
     File "C:\Users\Quick-Start\Documents\Python Doc's\Game_File.py",
   line 167, in gmAttack
       monsAttk(4, 15)
     File "C:\Users\Quick-Start\Documents\Python Doc's\Game_File.py",
   line 157, in monsAttk
       playHp -= damage
UnboundLocalError: local variable 'playHp' referenced before assignment

If you could please help me, that would be great. I'm just trying to get the game engine working, as of now, it is 30% done, with Inventory, Equipment, and a more sophisticated and simpler code to come. It's a bit of a mess now...


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


--
Bob Gailer
Chapel Hill NC
919-636-4239
_______________________________________________
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor

Reply via email to