Es la primera vez que escribo aquí, no se que tan comprensible pueda llegar a ser, pero ahí vamos 💪
En este vídeo de algoritmos explicado por Freddy, dónde explica de forma muy clara (hasta con diagrama de flujo) el algoritmo del juego.
Así que se me ocurrió la genial idea de llevarlo a código en con Python (apenas voy iniciando en programación, así que lo hice con todos los conocimientos que tengo hasta ahora).
Primero escribí el código en pseudocódigo y use Pseint para este propósito:



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 Pokemon 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.
Fundamentos de Ingeniería de Software
COMPARTE ESTE ARTÍCULO Y MUESTRA LO QUE APRENDISTE


