Question: don't use break function don't use while true Humanize my code: import random def turn _ damage ( damage _ range ) : return random.randint

don't use break function don't use while true Humanize my code:
import random
def turn_damage(damage_range):
return random.randint(damage_range[0], damage_range[1])
def dodge_check(chance_dodge):
return random.random()< chance_dodge
def check_for_winner(player_health, monster_health):
if player_health <=0:
return 'Monster'
elif monster_health <=0:
return 'Player'
return None
def player_generator():
classes =[
('Fighter',80,(5,10),0.1),
('Wizard',50,(8,15),0.14),
('Rogue',65,(7,12),0.17),
('Cleric',70,(6,11),0.12),
('Barbarian',85,(4,12),0.07)
]
valid_choice = False
choice =-1
while not valid_choice:
print('Choose your character class:')
for i, cls in enumerate(classes,1):
print(f"{i}.{cls[0]}")
try:
choice = int(input('Enter your choice (1-5): '))-1
if 0<= choice < len(classes):
valid_choice = True
else:
print('Invalid choice. Please select a valid class.')
except ValueError:
print('Invalid input. Please enter a number between 1 and 5.')
return classes[choice]
def main():
print('='*50)
print("Dungeon Fun: Battle Arena")
print('='*50)
player_class = player_generator()
player_name, player_health, player_damage_range, dexterity = player_class
player_dodge_chance =0.05+ dexterity *0.025
monster_health =70
monster_damage_range =(4,13)
monster_dodge_chance =0.15
print("-"*50)
print(f'You have chosen {player_name}!')
print('Starting Stats:')
print(f'-{player_name} Health: {player_health}')
print(f'-{player_name} Dexterity: {int(dexterity *10)}')
print(f'-{player_name} Damage: {player_damage_range[0]}-{player_damage_range[1]}')
print("Monster:")
print(f'- Monster Health: {monster_health}')
print(f'- Monster Damage: {monster_damage_range[0]}-{monster_damage_range[1]}')
print(f'- Monster Dodge Chance: {monster_dodge_chance *100:.0f}%')
print('='*50)
round_counter =0
game_over = False
while not game_over:
round_counter +=1
print(f'Round {round_counter}:')
player_damage = turn_damage(player_damage_range)
if not dodge_check(monster_dodge_chance):
monster_health -= player_damage
print(f'{player_name} attacks! Deals {player_damage} damage to the Monster.')
else:
print(f'{player_name} attacks! Monster dodges the attack.')
print(f'[Monster Health: {monster_health}]')
if monster_health <=0:
winner = "Player"
game_over = True
continue
monster_damage = turn_damage(monster_damage_range)
if not dodge_check(player_dodge_chance):
player_health -= monster_damage
print(f'Monster attacks! Deals {monster_damage} damage to {player_name}.')
else:
print(f'Monster attacks! {player_name} dodges the attack.')
print(f'[{player_name} Health: {player_health}]')
if player_health <=0:
winner = 'Monster'
game_over = True
print('-'*50)
input('Press Enter to proceed to the next round...')
print('='*50)
if winner == 'Player':
print(f'Victory!{player_name} wins the battle!')
else:
print('Defeat! The Monster has prevailed.')
print('='*50)
print("Battle Summary:")
print(f'- Total Rounds: {round_counter}')
print(f'-{player_name} Health Remaining: {max(player_health, 0)}')
print(f'- Monster Health Remaining: {max(monster_health, 0)}')
if __name__=="__main__":
main()

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Programming Questions!