An attack with magnitude M will be successful with a chance of (100-M)%. That is, higher magnitude means higher risk of missing it. For instance, if M is 30, the chance of succeeding would be 70%, whereas, if M is 10, the chance of succeeding would be 90%. If an attack with magnitude M is successful, the attacked hero’s health points will decrease by M. If the user writes more than 50 or less than 1, the game should warn the player, and re-ask for another attack magnitude as below.
import random # --- char1 = raw_input("Player One: ") while char1 == "": char1 = raw_input("Please enter your name: ") char2 = raw_input("Player two: ") while char2 == char1: char2 = raw_input(char1 + " name is taken, please choose another name: ") while char2 == "": char2 = raw_input("Please enter your name: ") print char1, "and", char2, "welcome to the game." # --- health1 = 50 health2 = 50 print char1, '|' * health1 print char2, '|' * health2 toss = random.randint(0, 1) if toss == 0: print char1, "will start the game" else: print char2, "will start the game" # --- while health1 > 0 and health2 > 0: if toss == 0: n = input(char1 + " select n force: ") health2 -= n print char2, '|' * health2 + char1,'|' * health1 toss = 1 # change player else: n = input(char2 + " select n force: ") health1 -= n print char1, '|' * health1 + char2,'|' * health2 toss = 0 # change player # --- if health1 > 0: print char2, 'wins' else: print char1, 'wins'