1+ '''
2+ ```
3+ /*
4+ * EJERCICIO:
5+ * ¡Deadpool y Wolverine se enfrentan en una batalla épica!
6+ * Crea un programa que simule la pelea y determine un ganador.
7+ * El programa simula un combate por turnos, donde cada protagonista posee unos
8+ * puntos de vida iniciales, un daño de ataque variable y diferentes cualidades
9+ * de regeneración y evasión de ataques.
10+ * Requisitos:
11+ * 1. El usuario debe determinar la vida inicial de cada protagonista.
12+ * 2. Cada personaje puede impartir un daño aleatorio:
13+ * - Deadpool: Entre 10 y 100.
14+ * - Wolverine: Entre 10 y 120.
15+ * 3. Si el daño es el máximo, el personaje que lo recibe no ataca en el
16+ * siguiente turno, ya que tiene que regenerarse (pero no aumenta vida).
17+ * 4. Cada personaje puede evitar el ataque contrario:
18+ * - Deadpool: 25% de posibilidades.
19+ * - Wolverine: 20% de posibilidades.
20+ * 5. Un personaje pierde si sus puntos de vida llegan a cero o menos.
21+ * Acciones:
22+ * 1. Simula una batalla.
23+ * 2. Muestra el número del turno (pausa de 1 segundo entre turnos).
24+ * 3. Muestra qué pasa en cada turno.
25+ * 4. Muestra la vida en cada turno.
26+ * 5. Muestra el resultado final.
27+ */'''
28+ import random
29+ import time
30+
31+ class Heroe :
32+ def __init__ (self ,nombre ,daño ,defensa ,puntos_vida = 300 ):
33+ self .nombre = nombre
34+ self .daño = daño
35+ self .defensa = defensa
36+ self .puntos_vida = puntos_vida
37+
38+ def __str__ (self ):
39+ return f'''
40+ { self .nombre }
41+ Daño: { self .daño }
42+ Defensa: { self .defensa } %'''
43+
44+ def ataque (self ):
45+ return random .randint (10 , self .daño )
46+
47+ def defensa (self ):
48+ return random .randint (1 , int (10 * (self .defensa / 100 )))
49+
50+ def resta_vida (self ,n ):
51+ self .puntos_vida -= n
52+
53+
54+
55+
56+ if __name__ == "__main__" :
57+ turno = 1
58+ final = False
59+ vida_1 = int (input ('Introduce vida inicial de Deadpool: ' ))
60+ vida_2 = int (input ('Introduce vida inicial de Wolverine: ' ))
61+
62+ Deadpool = Heroe ('Deadpool' ,100 ,25 ,vida_1 )
63+ Wolverine = Heroe ('Wolverine' ,120 ,20 ,vida_2 )
64+
65+ print (f'''
66+ Comienza La Batalla Wolverine VS Deadpool
67+
68+ Deadpool comienza con { vida_1 } puntos de vida
69+ Wolverine comienza con { vida_2 } puntos de vida ''' )
70+
71+ def lucha (heroe ):
72+ if heroe .ataque ()== heroe .daño :
73+ return True
74+ else :
75+ return heroe .ataque ()
76+
77+ def golpe_defensa (h1 ,h2 ):
78+ l = lucha (h1 )
79+ if l == True :
80+ golpe_defensa (h1 ,h2 )
81+ h2 .resta_vida (l )
82+ time .sleep (1 )
83+ print (f'''{ h1 .nombre } Golpéa con el máximo de fuerza
84+ dejando a { h2 .nombre } con { h2 .puntos_vida } puntos de vida.
85+ Repite el turno mientras { h2 .nombre } se regenera.''' )
86+ time .sleep (1 )
87+
88+
89+ print ()
90+ else :
91+ d = l - h2 .defensa
92+ h2 .resta_vida (d )
93+ time .sleep (1 )
94+ print (f'''{ h1 .nombre } Golpéa con { l } de fuerza
95+ dejando a { h2 .nombre } con { h2 .puntos_vida } puntos de vida.
96+ Ahora el turno es para { h2 .nombre } .''' )
97+ time .sleep (1 )
98+
99+
100+ print ()
101+
102+ while final == False :
103+ golpe_defensa (Deadpool ,Wolverine )
104+ if Wolverine .puntos_vida <= 0 :
105+ print (f'{ Deadpool .nombre } GANADOR!!!!' )
106+ final = True
107+ break
108+
109+ golpe_defensa (Wolverine ,Deadpool )
110+ if Deadpool .puntos_vida <= 0 :
111+ print (f'{ Wolverine .nombre } GANADOR!!!!' )
112+ final = True
113+ break
114+ print ('FINAL DEL JUEGO' )
115+ print (f'''
116+ { Deadpool .nombre } --> { Deadpool .puntos_vida }
117+ { Wolverine .nombre } --> { Wolverine .puntos_vida } ''' )
118+
119+
120+
121+
0 commit comments