#I'm making a battling system and am running into a problem. I need to get two variables that are in
#the function encounter() and use them in the function battle() which is inside encounter()
#if it wasn't inside of the function I could just use return and then make a variable equal
#to the function but since it is inside the function that isn't working.
#I need to get monster_hp and player_hp inside battle()
def encounter( ) : #battle system
battling, monster_name = rand_mon( ) #which monster you battle (actually their stats)
player_hp = player.stats .hp
monster_hp = battling.hp
return ( player_hp, monster_hp)
def battle( ) :
while monster_hp > 0 and player_hp > 0 :
damage_this_turn = math .floor ( ( random .randint ( 1 , 5 ) * ( player.stats .attack - battling.defense ) / 2 ) /random .randint ( 2 , 4 ) ) #equation for dealing damage
monster_damage_this_turn = math .floor ( ( random .randint ( 1 , 5 ) * ( battling.attack - player.stats .defense ) / 2 ) /random .randint ( 2 , 4 ) )
if damage_this_turn <= 0 : #never deal 0 damage
damage_this_turn = 1
print ( "You have dealt " + str ( damage_this_turn) + " damage to the " + monster_name + " this turn. It has " + str ( monster_hp - damage_this_turn) + "hp left." )
monster_hp -= damage_this_turn
print ( "The monster has dealt " + str ( monster_damage_this_turn) + " damage to you this turn. You have " + str ( player_hp - monster_damage_this_turn) + "hp left." )
player_hp -= monster_damage_this_turn
battle( )
battle( )
I0knbSBtYWtpbmcgYSBiYXR0bGluZyBzeXN0ZW0gYW5kIGFtIHJ1bm5pbmcgaW50byBhIHByb2JsZW0uIEkgbmVlZCB0byBnZXQgdHdvIHZhcmlhYmxlcyB0aGF0IGFyZSBpbgojdGhlIGZ1bmN0aW9uIGVuY291bnRlcigpIGFuZCB1c2UgdGhlbSBpbiB0aGUgZnVuY3Rpb24gYmF0dGxlKCkgd2hpY2ggaXMgaW5zaWRlIGVuY291bnRlcigpCiNpZiBpdCB3YXNuJ3QgaW5zaWRlIG9mIHRoZSBmdW5jdGlvbiBJIGNvdWxkIGp1c3QgdXNlIHJldHVybiBhbmQgdGhlbiBtYWtlIGEgdmFyaWFibGUgZXF1YWwgCiN0byB0aGUgZnVuY3Rpb24gYnV0IHNpbmNlIGl0IGlzIGluc2lkZSB0aGUgZnVuY3Rpb24gdGhhdCBpc24ndCB3b3JraW5nLgojSSBuZWVkIHRvIGdldCBtb25zdGVyX2hwIGFuZCBwbGF5ZXJfaHAgaW5zaWRlIGJhdHRsZSgpCgpkZWYgZW5jb3VudGVyKCk6ICNiYXR0bGUgc3lzdGVtCiAgICBiYXR0bGluZywgbW9uc3Rlcl9uYW1lID0gcmFuZF9tb24oKSAjd2hpY2ggbW9uc3RlciB5b3UgYmF0dGxlIChhY3R1YWxseSB0aGVpciBzdGF0cykKICAgIHBsYXllcl9ocCA9IHBsYXllci5zdGF0cy5ocAogICAgbW9uc3Rlcl9ocCA9IGJhdHRsaW5nLmhwCiAgICByZXR1cm4ocGxheWVyX2hwLCBtb25zdGVyX2hwKQogICAgZGVmIGJhdHRsZSgpOgogICAgICAgIHdoaWxlIG1vbnN0ZXJfaHAgPiAwIGFuZCBwbGF5ZXJfaHAgPiAwOgogICAgICAgICAgICBkYW1hZ2VfdGhpc190dXJuID0gbWF0aC5mbG9vcigocmFuZG9tLnJhbmRpbnQoMSwgNSkgKiAocGxheWVyLnN0YXRzLmF0dGFjayAtIGJhdHRsaW5nLmRlZmVuc2UpIC8gMikvcmFuZG9tLnJhbmRpbnQoMiw0KSkgI2VxdWF0aW9uIGZvciBkZWFsaW5nIGRhbWFnZQogICAgICAgICAgICBtb25zdGVyX2RhbWFnZV90aGlzX3R1cm4gPSBtYXRoLmZsb29yKChyYW5kb20ucmFuZGludCgxLCA1KSAqIChiYXR0bGluZy5hdHRhY2sgLSBwbGF5ZXIuc3RhdHMuZGVmZW5zZSkgLyAyKS9yYW5kb20ucmFuZGludCgyLDQpKQogICAgICAgICAgICBpZiBkYW1hZ2VfdGhpc190dXJuIDw9IDA6ICNuZXZlciBkZWFsIDAgZGFtYWdlCiAgICAgICAgICAgICAgICBkYW1hZ2VfdGhpc190dXJuID0gMQogICAgICAgICAgICAgICAgCiAgICAgICAgICAgIHByaW50KCJZb3UgaGF2ZSBkZWFsdCAiICsgc3RyKGRhbWFnZV90aGlzX3R1cm4pICsgIiBkYW1hZ2UgdG8gdGhlICIgKyBtb25zdGVyX25hbWUgKyAiIHRoaXMgdHVybi4gSXQgaGFzICIgKyBzdHIobW9uc3Rlcl9ocCAtIGRhbWFnZV90aGlzX3R1cm4pICsgImhwIGxlZnQuIikKICAgICAgICAgICAgbW9uc3Rlcl9ocCAtPSBkYW1hZ2VfdGhpc190dXJuCgogICAgICAgICAgICBwcmludCgiVGhlIG1vbnN0ZXIgaGFzIGRlYWx0ICIgKyBzdHIobW9uc3Rlcl9kYW1hZ2VfdGhpc190dXJuKSArICIgZGFtYWdlIHRvIHlvdSB0aGlzIHR1cm4uIFlvdSBoYXZlICIgKyBzdHIocGxheWVyX2hwIC0gbW9uc3Rlcl9kYW1hZ2VfdGhpc190dXJuKSArICJocCBsZWZ0LiIpCiAgICAgICAgICAgIHBsYXllcl9ocCAtPSBtb25zdGVyX2RhbWFnZV90aGlzX3R1cm4KICAgICAgICAgICAgYmF0dGxlKCkKICAgIGJhdHRsZSgp