Qué es un algoritmo

Clase 30 de 32Fundamentos de Ingeniería de Software

Resumen

¿Cómo crear un algoritmo de combate Pokémon?

Imagina un universo donde criaturas legendarias luchan por sus vidas. Estamos hablando de Pokémon, una fusión perfecta entre estrategia y programación que ejemplifica cómo funcionan los algoritmos. Aquí, desglosaremos el proceso para entender cómo puedes programar una batalla Pokémon siguiendo estas dinámicas.

¿Qué es un Pokémon en términos de programación?

Cuando piensas en Pokémon, piénsalo como un objeto en el mundo de la programación. Un objeto es una estructura que tiene variables (atributos) y funciones. En nuestro caso, un Pokémon tiene:

  • Nombre: Pikachu, Jigglypuff, etc.
  • Vida: Inicialmente establecemos 100 puntos de vida para cada Pokémon.
  • Poder de ataque: Pikachu tiene 55 puntos de ataque y Jigglypuff 45.

Con estos atributos, estamos listos para definir las batallas Pokémon.

¿Cómo funciona una batalla Pokémon?

Las batallas Pokémon son por turnos. Aquí el algoritmo de combate se describe paso por paso:

  1. Declaración de Pokémon: Inicializamos las variables de vida y ataque para cada Pokémon.
let pikachu = { vida: 100, ataque: 55 };
let jigglypuff = { vida: 100, ataque: 45 };
  1. Determinación de turnos: Usamos una variable llamada turno para saber a quién le toca.
let turno = 1; // 1 es Pikachu, 0 es Jigglypuff
  1. Ciclo de combate: Mientras ambos Pokémon tengan más de 0 de vida, siguen peleando:

    • Si es turno de Pikachu, Jigglypuff pierde vida igual al ataque de Pikachu.
    • Si es turno de Jigglypuff, Pikachu pierde vida igual al ataque de Jigglypuff.
while (pikachu.vida > 0 && jigglypuff.vida > 0) {
    if (turno === 1) {
        jigglypuff.vida -= pikachu.ataque;
        turno = 0;
    } else {
        pikachu.vida -= jigglypuff.ataque;
        turno = 1;
    }
}

¿Cómo saber quién gana la batalla?

Al terminar el ciclo, verificamos quién queda con vida mayor a cero. Si Pikachu tiene vida mayor a cero, gana.

if (pikachu.vida > 0) {
    console.log("Pikachu gana.");
} else {
    console.log("Jigglypuff gana.");
}

¿Qué conceptos de programación hemos aprendido?

Este ejercicio sencillo de una batalla Pokémon abarca conceptos fundamentales como:

  • Variables: Almacenan datos como nombres, vida y ataque.
  • Condicionales: Se usan para tomar decisiones, como quién ataca o quién ganó.
  • Ciclos: Permiten repetir acciones mientras una condición sea verdadera.

Este ejemplo es solo la puerta de entrada al mundo de la programación. Si deseas profundizar más, puedes explorar plataformas como Mejorándola en Platzi, que ofrece cursos completos de programación. ¡Sigue adelante y continúa descubriendo cómo programar!