Programación de Juegos: Lógica de Ataques y Victorias

Clase 59 de 84Curso Gratis de Programación Básica

Resumen

Para finalizar el videojuego, solo resta definir la lógica del combate para determinar al ganador a partir de la secuencia de ataques.

Finalización del combate

El ganador del combate se determinará al mejor de 5 ataques o dependiendo qué mokepon le haya quitado más vidas a su rival.

Utilizaremos una serie de variables para almacenar la cantidad de vidas del mokepon del jugador y del enemigo, y otras variables para contar la cantidad de combates ganados por cada participante.

let victoriasJugador = 0;
let victoriasEnemigo = 0;
let vidasJugador = 3;
let vidasEnemigo = 3;

Tómate un rato para analizar la siguiente lógica del combate que implementamos. La misma determina, por cada ataque, si el mokepon del jugador ganó, empató o perdió ese ataque. Dependiendo el resultado, se le suma una victoria al jugador o al enemigo, y se imprime por pantalla el ataque de cada turno.

function combate() {
    for (let index = 0; index < ataqueJugador.length; index++) {
        if(ataqueJugador[index] === ataqueEnemigo[index]) {
            indexAmbosOponente(index, index);
            crearMensaje("EMPATE");
        } else if (ataqueJugador[index] === 'FUEGO' && ataqueEnemigo[index] === 'TIERRA') {
            indexAmbosOponente(index, index);
            crearMensaje("GANASTE");
            victoriasJugador++;
            spanVidasJugador.innerHTML = victoriasJugador;
        } else if (ataqueJugador[index] ==='AGUA' && ataqueEnemigo[index] === 'FUEGO') {
            indexAmbosOponente(index, index);
            crearMensaje("GANASTE");
            victoriasJugador++;
            spanVidasJugador.innerHTML = victoriasJugador;
        } else if (ataqueJugador[index] === 'TIERRA' && ataqueEnemigo[index] === 'AGUA') {
            indexAmbosOponente(index, index);
            crearMensaje("GANASTE");
            victoriasJugador++;
            spanVidasJugador.innerHTML = victoriasJugador;
        } else {
            indexAmbosOponente(index, index);
            crearMensaje("PERDISTE");
            victoriasEnemigo++;
            spanVidasEnemigo.innerHTML = victoriasEnemigo;
        }
    }
    revisarVidas();
}

Una vez recorrido cada ataque del combate, mostraremos el mensaje final por pantalla que le indique al jugador si ha ganado, perdido o empatado el combate.

function revisarVidas() {
    if (victoriasJugador === victoriasEnemigo) {
        crearMensajeFinal("Esto fue un empate!!!");
    } else if (victoriasJugador > victoriasEnemigo) {
        crearMensajeFinal("FELICITACIONES! Ganaste :)");
    } else {
        crearMensajeFinal('Lo siento, perdiste :(');
    }
}

¡Felicidades! Hasta este punto, has logrado programar toda la lógica del combate de los mokepones y ya puedes jugar con el videojuego todo lo que quieras o incluso implementar modificaciones y tu propia lógica del juego.


Contribución creada por: Kevin Fiorentino (Platzi Contributor)