Algoritmo Pokémon
Explorando en Youtube me topé con este vídeo de algoritmos hecho por Freddy Vega (Ceo de Platzi), dónde de forma muy clara (hasta con diagrama de flujo) explica el algoritmo del juego de Pokémon.
Así que se me ocurrió la genial idea de llevarlo a código con Python de la manera más sencilla.
Primero escribí el código en pseudocódigo y use Pseint para este propósito, también lo pueden encontrar en GitHub:
El mismo programa (Pseint) construye el Diagrama de Flujo
Ahora el mismo código en Python:
import random
defpokemon_game():
# Definimos la vida de los pokemones
hp_pikachu = 100
hp_jiggypuff = 100
# Definimos el turno, el cual será aleatorio
# 0 Para Pikachu
# 1 Para Jigglipuff
turn = random.randint(0, 1)
print('Pikachu HP : ' + str(hp_pikachu))
print('Jigglypuff HP : ' + str(hp_jiggypuff) )
# Entramos en combate
while hp_pikachu > 0and hp_jiggypuff > 0:
# Esta partida esta arreglada (al menos le estamos dando ventaja a Pikachu)xD
attack_pikachu = random.randint(0, 55)
attack_jigglypuff = random.randint(0, 45)
if turn == 1:
print('\nTurn: Jigglypuff')
print('Pikachu HP : ' + str(hp_pikachu) + ' HP')
hp_pikachu -= attack_jigglypuff
print('Jigglypuff attack : -' + str(attack_jigglypuff))
print('Pikachu HP : ' + str(hp_pikachu))
turn = 0
else:
print('\nTurn: Pikachu')
print('Jigglypuuf HP : ' + str(hp_jiggypuff) + ' HP')
hp_jiggypuff -= attack_pikachu
print('Pikachu attack : -' + str(attack_pikachu))
print('Jigglypuff HP : ' + str(hp_jiggypuff))
turn = 1
# Salimos del ciclo cuando la vida de uno de los 2 sea menor o igual a 0
if hp_pikachu <= 0:
win = '\nJigglipuuf is the winner'
else:
win = '\nPikachu is the winner'
print(win)
pokemon_game()
Mi ingles es muy básico lo sé 😄, pero mientras voy escribiendo código voy practicando un poco de ingles (al menos para nombrar las variables), el resultado variara en cada ejecución, porque los turnos y el ataque de los Pokémon se da de manera aleatoria:
Resultado 1
Resultado 2
Resultado 3
Espero este pequeño post le sirva alguien que también éste empezando, sé que se le puede agregar y mejorar mucho, pero por ahora esto es lo que puedo hacer, alguien más experimentado que pueda mejorar esta idea, se que no se puede reinventar la rueda, pero en casos de aprendizaje sirve bastante.
Sobre el autor
Kenyi Hancco Ingeniero de Software |
Comentarios
Publicar un comentario