Jul-30-2017, 08:42 PM
As you can see from the code I am a beginner. When I run this code, the error is that g_heal is referenced before it is assigned a value. This is untrue because g_heal should have a random value between 25 and 40. Even when I take this away, I have the same problem with g_def. Can anyone help me out with this please? Would be greatly appreciated. Also there is code before this but that is just assigning values to your character.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
a1 = int ( input ( "You are on your way to the castle when you see a guard, he is alone and looks weak. To fight type 1, to leave him type 2. Note: Fighting increases your attributes but decreases your energy by 1. Energy = 20: " )) def fight(): print (g_heal) p_q = ((a_p / 100 ) * mob) - (g_def / 3 ) m_q = ((a_p / 100 ) * mob * 1.45 ) - (g_def / 3 ) h_q = ((a_p / 100 ) * mob * 1.8 ) - (g_def / 3 ) you = int ( input ( """ Type 1 for quick hit. Damage =""" , p_q, """ Chance of hitting = 100% Type 2 for medium hit. Damage =""" , m_q, """ Chance of hitting = 70% Type 3 for hard hit. Damage =""" , h_q, """Chance of hitting = 70%""" )) hitper = random.randint( 1 , 10 ) if hitper > 0 and you = = 1 : g_heal = g_heal - p_q if hitper > 3 and you = = 2 : g_heal = g_heal - m_q if hitper > 6 and you = = 3 : g_heal = g_heal - h_q if hitper < 4 and you = = 2 : print ( "YOU MISSED!" ) if hitper < 7 and you = = 3 : print ( "YOU MISSED!" ) print ( "The guards health is" , g_heal) if g_heal < = 0 : battle = False a_p = a_p + 2 defe = defe + 2 mob = mob + 2 print ( "All attributes increased by 2!" ) hitme = (g_a_p / 2 ) - (defe / / 10 ) heal = heal - hitme print ( "The guard dealt" , hitme, " damage and now you have" , heal, " health" ) if heal < 1 : print ( "YOU ARE DEAD!" ) if a1 = = 1 : battle = True g_a_p = random.randint( 20 , 35 ) g_def = random.randint( 10 , 25 ) g_heal = random.randint( 25 , 40 ) while battle = = True : fight() |