Programación de Juegos: Lógica de Ataques y Victorias
Clase 59 de 84 • Curso 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)