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'
class
andfunction
s? \$\endgroup\$