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.
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.
functionrevisarVidas(){if(victoriasJugador === victoriasEnemigo){crearMensajeFinal("Esto fue un empate!!!");}elseif(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.
Todos mis respetos a todas las personas que lleguen a estas clases, está costando pero vamos a conseguirlo 💪🏼
ya no creo que sea programacion basica jajajaja
Ánimo Niko, tú puedes 💪🏼
A todas esas personas que como yo se dieron cuenta que el salario básico es una basura y se dieron cuenta que la educación es lo que nos va a sacar del salario minimo,la acción nos va dar un emjor futuro, escriban un comentario aca o den un like, que sepan que somos más, que los nuevos programadores se están formando, y VAMOS CON TODO, mis respetos a los que estamos llegando hasta esta parte del curso.
si mas de uno nos dimos de cuenta....
Ánimo compañeros!!, sigamos aprovechando nuestro presente para tener un mejor futuro🔥.
hay un error en el código de validación de ataques, en el if de l empate, victoriasJugador suma una victoria, pero es un empate, no debería sumar ni restar nada
si exacto yo lo vi tambien
así es un empate no debe de contar como victoria
Llegar a este punto de verdad es gratificante, yo me vi las clases del profe Diego, minimo 5 veces cada una, para poder llegar aqui y comprender lo que estoy haciendo! buenisimo el curso! Felicidades a los que estamos aqui y animos!!
tienes mucho tiempo libre! yo solamente la pude ver una sola vez!
sin embargo! no me rendire hasta lograr ser un buen programador!
En estas últimas clases noté algo de suma importancia y es que si aun inicias en este ambiente de la programación, debes ser muy cuidadoso al orden en el que colocas cada funcion o la llamada a ella, asi como los nombres de las variables o constantes pues como se observa, hasta el mismo Diego se llega a equivocar. Por ello antes de buscar un problema grande, trata de buscar en lo mas sencillo como lo son los nombres de las variables y de ahi a lo mas complejo
Totalmente cierto, hay que tener pensamiento lógico extremo.
Saludos!
Diego se equivoca adrede, si lo hiciera todo bien, realmente no aprenderíamos a depurar el código y encontrar nosotros mismos el error. Aunque hayan compañeros que se les haya hecho eterno el curso y a otros que a medida que avanzabamos se nos dañaba el código, algunos buscamos repararlo y aprendíamos el doble, otros simplemente se frustraron y se fueron, los que quedamos aquí realmente queremos aprender y ya con este curso aprendimos que cualquiera puede escribir código(bien o mal), pero pocos le sacamos el tiempo y la paciencia que requiere aprender programación. Exitos para is compañeros de platzi.
¿Qué se hace en esta clase?
Ya teníamos el código para comparar las secuencias. Ahora, modificamos la lógica del juego ya que, en vez de quitar vidas tras ganr o perder, aumentamos victorias, ya sea las del jugador o las del enemigo. Esto se hace:
Creando dos variables que empezarán en 0 let victoriasJugador = 0 y let victorias Enemigo = 0
Aumentando las victorias del jugador si este gana victoriasJugador++ o las del enemigo si es este el vencedor victoriasEnemigo++
Mostrar la actualización del número de victorias en el HTML, esto mediante spanVidasJugador.innerHTML = victoriasJugador si el ganador fue el jugador o spanVidasEnemigo.innerHTML = victoriasEnemigo si el que ganó fue el enemigo
Se comprueba quién tuvo más victorias usando la función function revisarVictorias() { }
En esta función se comparan la variables victoriasJugador y victoriasEnemigo creadas al principio mediante una validación (if (condición) { }) y se determina si el jugador ganó, perdió o empató
Wey tu resumen queda bastante chido, gracias
No puedo cree que dure 2 dias luchando con un error y al final me di cuenta, que no habia inicializado una funcion. 🤦♂️🤦♂️
Suele pasar :c pero ahora no te olvidarás nunca de revisar! c:
Literal, pero creo que sera muy dificíl que nos vuelva a pasar. Después de todo ese tiempo nunca olvido checar las funciones.
En este punto ya no se si fue buena idea haberme puesto creativo y haber añadido 5 elementos diferentes y cada uno con 5 ataques diferentes XD ... Aunque si esta divertido así que creo que valió la pena :3
Yo tambien estoy en lo mismo jajajaja
Igual yo , sólo que le coloqué super attacks cuando tienes 3 puntos de vida o menos y un ultimate attack ue aparece random con probabilidad de 1 a 50 veces. es un attack motal.
estimado Diego, si miras bien la prueba final, esta erronea porque eso fue un empate, miralo bien, tuviste 2 victorias y el enemigo tambien 2... agua vs agua =empate, tierra vs agua = gana jugador, fuego vs agua= gana enemigo, tierra vs agua, gana jugador y tierra vs fuego = gana enemigo, en total; Jugador gana 2 y enemigo gana 2 ... alguien mas lo notó? o estoy mal yo jeje... por cierto mi codigo en el reto lo hice en base a las vidas, simplemente gana quien tiene mas vidas al final del combate, aqui les dejo mi codigo por si alguien quiere echar un vistazo...
sí se equivocó yo también noté que está agregando victorias en el caso de empates lo cual no debería ocurrir
:o
no entiendo ni mierda xd
No se podia hacer un poco mas complicado? creo que esta muy basico
Es muy pesado hasta ahora el Curso Básico, para mi no es tan básico jijijijijij. Es muy bonito todo lo que estoy aprendiendo me da cólera que no encuentro las fallas y cuando la encuentra que es una MAYÚSCULA O UN ESPACIO me da una alegría :) GRACIAS POR EL CURSO ES GENIAL MUCHAS GRACIAS
Lo dijo el buen Freddy desde el principio, esos errores los tendras a lo largo de toda tu carrera y si los puedes tolerar pues Bienvenido de lo contario te sera mas dificil.
Y como puedes ver incluso igual al gran profe Diego aun le suceden asi que sigamos adelante!!!!
Me encanta que todos aquí vamos buscando soluciones distintas a las que ha propuesto Diego, de eso se trata aprender.
Comparto mi resultado hasta ahora y un Link por si quieren entrar a jugar desde el celular o desde el PC.
.
Link: https://estebanchica07.github.io/Mokepon-V1/
.
Esta bueno! ¿Cómo le haces para pasar el link?
Hola Jazmin, para eso debes crear una cuenta de Github, donde puedes ir subiendo todos tus proyectos. Creo que hay un curso en Platzi que nos da la inducción, no lo he hecho pero vi que alguien puso un link entonces entré a la página y cree una cuenta.
en mi proyecto yo decidí ocultar la sección de los ataques cuando termina el combate
Cómo lo hiciste?
No entiendo por qué el profe le sube las vidas a victoriasJugador cuando hay empate.
Se soluciona más adelante, no te preocupes. :D
iba a preguntar lo mismo y justo voltee a ver el comentario
Creo que me gusto más mi versión
Así se ve:
!Mokepon
Para mas informacion de como lo hice ve mi aporte de clase anterior en este link -> Nunca pares de aprender
Muy llamativo, excelente. ¿Tuviste que incluir un div en html?
Hola Javi. Haec un tiempo que lo hice, así que no recuerdo a que div te refieres, pero te dejo mi repositorio para que lo checes, lo commits van por clase:
Repositorio
Lo que pude notar es que los ataques del enemigo no deberian ser 4 de agua sino que se supone que los que tiene disponibles son 3 de agua 1 de tierra y 1 de fuego, no esta validando que solo utilice los ataques predefinidos o algo esta pasando, no se si me estoy adelantando a clases que siguen pero lo dejo por las dudas
Cierto, yo noté lo mismo. En el código que hay hasta ahora no se está respetando el set de ataques de los mokepones enemigos. En mi caso resolví esto agregando una función de consumo aleatorio de ataques del enemigo.
Diego se equivoca adrede, si lo hiciera todo bien, realmente no aprenderíamos a depurar el código y encontrar nosotros mismos el error. Aunque hayan compañeros que se les haya hecho eterno el curso y a otros que a medida que avanzabamos se nos dañaba el código, algunos buscamos repararlo y aprendíamos el doble, otros simplemente se frustraron y se fueron, los que quedamos aquí realmente queremos aprender y ya con este curso aprendimos que cualquiera puede escribir código(bien o mal), pero pocos le sacamos el tiempo y la paciencia que requiere aprender programación. Exitos para is compañeros de platzi.
Me parece que hay algún error en el código ya que el score terminó 3-2 cuando hubo un empate.
Es porque en la condición del if de la función combate en el caso de empate le estas indicando que le sumes una victoria al jugador, entonces si le quitas el victoriasJugador++ ya no le sumara la victoria