Skip to content

Commit 211c41d

Browse files
authored
Merge pull request mouredev#5878 from Javierfiestasbotella/main
mouredev#32 python
2 parents 7e276b4 + 8f9479b commit 211c41d

File tree

2 files changed

+124
-3
lines changed

2 files changed

+124
-3
lines changed
Lines changed: 121 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,121 @@
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+

Roadmap/35 - REPARTIENDO LOS ANILLOS DE PODER/python/javierfiestasbotella.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,16 +17,16 @@
1717
'''
1818
import random
1919

20-
def es_primo(n):
20+
def primo(n):
2121
if n < 2:
2222
return False
2323
for i in range(2, int(n**0.5) + 1):
2424
if n % i == 0:
2525
return False
2626
return True
2727

28-
for _ in range(100): # Intentamos 100 veces encontrar una combinación válida
29-
enanos = random.choice([i for i in range(1, 20) if es_primo(i)])
28+
for _ in range(100):
29+
enanos = random.choice([i for i in range(1, 20) if primo(i)])
3030
elfos = random.choice([i for i in range(1, 20, 2)])
3131
humanos = random.choice([i for i in range(2, 21, 2)])
3232
sauron = 1

0 commit comments

Comments
 (0)