Skip to content

Commit e930cdd

Browse files
authored
Merge pull request #5377 from Trufoplus/Solutions
#32 - Python
2 parents e63aa06 + 070a39a commit e930cdd

File tree

1 file changed

+106
-0
lines changed
  • Roadmap/32 - BATALLA DEADPOOL Y WOLVERINE/python

1 file changed

+106
-0
lines changed
Lines changed: 106 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,106 @@
1+
from random import randint
2+
import time
3+
4+
5+
class BattleSystem:
6+
def damage(self):
7+
return randint(self.damage_range[0], self.damage_range[1])
8+
9+
def critical_hit(self, damage):
10+
return damage == self.damage_range[1]
11+
12+
def evasion_chance(self):
13+
return randint(0, 100) < self.evasion
14+
15+
def dead(self):
16+
return self.health <= 0
17+
18+
def __str__(self):
19+
return (
20+
f'Vida {self.name}: {self.health}'
21+
)
22+
23+
24+
class Deadpool(BattleSystem):
25+
def __init__(self, health: int):
26+
self.name = 'Deadpool'
27+
self.health = health
28+
self.damage_range = [10, 100]
29+
self.regeneration = 1
30+
self.evasion = 25
31+
32+
33+
class Wolverine(BattleSystem):
34+
def __init__(self, health: int):
35+
self.name = 'Wolverine'
36+
self.health = health
37+
self.damage_range = [10, 120]
38+
self.regeneration = 1
39+
self.evasion = 20
40+
41+
42+
class BattleSimulation:
43+
@staticmethod
44+
def battle(deadpool: Deadpool, wolverine: Wolverine):
45+
turn = 1
46+
47+
while True:
48+
#Comprueba si deadpool esta vivo
49+
if deadpool.dead():
50+
print("\nDeadpool ha sido derrotado. ¡Wolverine gana!\n")
51+
break
52+
53+
print(f'\nEstamos en el turno {turn}')
54+
55+
#Si estamos empezando aun no se han realizado ataques
56+
if turn == 1:
57+
damage = 0
58+
#Ataca Deapool si no le han hecho un daño critico
59+
if not wolverine.critical_hit(damage):
60+
damage = deadpool.damage()
61+
62+
if wolverine.evasion_chance():
63+
print('Wolverine esquiva el ataque!!')
64+
else:
65+
wolverine.health -= damage
66+
print(f'+ Deadpool hace {damage} puntos de daño.')
67+
print(wolverine)
68+
69+
#Comprueba si wolverine esta vivo
70+
if wolverine.dead():
71+
print("\nWolverine ha sido derrotado. ¡Deadpool gana!\n")
72+
break
73+
74+
# Ataca wolverine si no le han hecho un daño critico
75+
if not deadpool.critical_hit(damage):
76+
77+
damage = wolverine.damage()
78+
if deadpool.evasion_chance():
79+
print('Deadpool esquiva el ataque!!')
80+
else:
81+
deadpool.health -= damage
82+
print(f'+ Wolverine hace {damage} puntos de daño.')
83+
print(deadpool)
84+
85+
time.sleep(5)
86+
turn += 1
87+
88+
89+
90+
91+
92+
93+
94+
95+
96+
97+
98+
99+
100+
# Pruebas
101+
deadpool_char = Deadpool(int(input('Introduce la vida inicial de Deadpool: ')))
102+
print(deadpool_char)
103+
wolverine_char = Wolverine(int(input('Introduce la vida inicial de Wolverine: ')))
104+
print(wolverine_char)
105+
106+
BattleSimulation.battle(deadpool_char, wolverine_char)

0 commit comments

Comments
 (0)