Leonardo Serrano Alfaro
El atajo del teclado para comentar las lineas seleccionadas es ALT+SHIFT+A
Betsy Malely Astudillo Gutiérrez
También me funcionó CTRL + }
Andres Cavedal
Que grande jaja, le falto explicar eso
Cuando desarrollas un juego web, la forma en que presentas los mensajes al jugador marca la diferencia entre una experiencia confusa y una realmente clara. Separar la lógica de los mensajes en el código JavaScript y aplicar estilos con CSS permite que cada resultado se muestre de manera ordenada, con un diseño limpio y fácil de entender.
¿Cómo separar los mensajes en elementos HTML independientes?
El primer paso consiste en analizar qué información contiene el mensaje original. En este caso, se identifican tres partes: el resultado del combate (ganaste, perdiste o empataste), el ataque del jugador y el ataque del enemigo [01:05]. En lugar de mostrar todo en un solo bloque de texto largo, la idea es dividirlo en tres contenedores independientes.
Para lograrlo, se crean tres div en el HTML, cada uno con un ID específico:
resultado: muestra únicamente si ganaste, perdiste o empataste.ataques-del-jugador: registra los ataques que realizó el jugador.ataques-del-enemigo: registra los ataques del oponente.Esta técnica de separar la información en elementos con IDs propios es fundamental para manipular el DOM (Document Object Model) de forma precisa desde JavaScript.
¿Por qué usar innerHTML en lugar de appendChild?
Al trabajar con el resultado, surge un problema: si se usa appendChild para agregar párrafos, los mensajes se van apilando uno debajo del otro con cada turno [07:00]. Eso no es lo deseado. La solución es utilizar innerHTML, que reemplaza el contenido existente en vez de acumularlo.
Además, como el resultado solo necesita un párrafo, se puede cambiar el div por una etiqueta <p> directamente en el HTML, simplificando la estructura [07:25].
¿Cómo garantizar consistencia en el código?
Un detalle importante es mantener la convención de nombres en todo el proyecto. Si el resto del código usa guiones (ataques-del-jugador), hay que evitar mezclar con camelCase (ataquesDelJugador) para no generar inconsistencias [04:35]. La función getElementById debe coincidir exactamente con el ID definido en el HTML.
¿Qué estilos CSS aplicar a la caja de mensajes?
Una vez que la lógica funciona correctamente, se aplican estilos para dar forma visual a la caja. Los estilos clave que se definen para el selector #mensajes son [10:05]:
Para centrar el contenido se utiliza Flexbox, estableciendo display: flex, flex-direction: column y align-items: center [16:35]. Con flex-direction en column, el texto del resultado queda arriba y el botón de reiniciar abajo, apilados verticalmente.
¿Cómo estilizar el botón de reiniciar?
El botón de reiniciar se mueve dentro del contenedor de mensajes para que aparezca justo debajo del resultado final del juego [14:15]. Los estilos aplicados al botón incluyen:
border: none o border: transparent para eliminar el borde predeterminado.color con uno de los azules de la paleta utilizada en el proyecto.¿Cómo manejar el mensaje por defecto y el mensaje final?
Antes de que el juego comience, la caja aparecería vacía. Para evitar esto, se agrega un texto por defecto directamente en el HTML, como "mucha suerte" [11:45], que motiva al jugador antes de iniciar.
Para el mensaje final, se debe verificar que la función crearMensajeFinal apunte al ID correcto (resultado en lugar de mensajes) [13:10]. Un truco útil es usar Ctrl + F en el editor de código para buscar referencias antiguas y asegurarse de que todas estén actualizadas [13:50].
El resultado final es una caja compacta, con bordes redondeados, que muestra solo el resultado relevante y el botón de reiniciar, sin texto innecesario. Muestra en los comentarios cómo te quedó tu caja de mensajes y qué colores elegiste para personalizarla.
Leonardo Serrano Alfaro
El atajo del teclado para comentar las lineas seleccionadas es ALT+SHIFT+A
Betsy Malely Astudillo Gutiérrez
También me funcionó CTRL + }
Andres Cavedal
Que grande jaja, le falto explicar eso
jose miguel pascuas carvajal
de 40 clases que llevo es la primera en que me enredo y la profe cambia el codigo en js sin explicar de manera clara el por qué.
Kevin Alexis Rondon Gonzalez
si, va a suceder y es por ello que sepas lo que escribes y lo entiendas por que ella solo edito y utilizo las mismas funciones, te entiendo a mi tambien me paso y me toco volver a leer el codigo para poderlo acomodar
Stalin Carrasco Dávila
Te comprendo, yo también me enredé, lo único es volver a leer esa línea de código para que comprendas, pero si tuve que encontrar un poco la lógica del porque.
Jose Herrera
Hola, Así va mi proyecto hasta el momento. Muchas gracias por este maravilloso curso, estoy aprendiendo muchísimo.
Jesús González Jurado
Vaya pasada !
Marcos Monteverde
que epico
León Palacio Rangel
La clase es algo confusa porque Estefany no menciona la razón de varias cosas que hace, además de que utiliza algunos atajos de teclado que los novatos no conocemos. No tuve problemas con mi código y al final lo logré, pero tuve que ir con mucho detenimiento para no confundirme. Es por eso que les sugiero revisar su código a cada mínimo paso que dan, porque en la vida real supongo que habrán sesiones de trabajo donde sea confuso explicar nuestro código o leer el código de otro. Esta clase es una lección de eso.
Zulay Yomaly Castro Cardenas
Gracias por tu comentario, estoy apunto de iniciar la clase, lo haré con mucho detenimiento y atención.. Gracias...
Javier Rojas
Gracias por el comentario. Ojalá todos los que vayan a ver esta clase lo lean antes, así no se van a enredar tanto ni se van a sentir mal por no entender el por qué de las cosas.
¡Un saludo!
Alejandro Bustamante Hernandez
Con el comando Shitf + Alt + FlechaAbajo en VisualStudio pueden duplicar una linea de código tal y como lo hace la profe Estefany en el video
Alejandro Castro
Excelente!!!!! Me pregunte muchas veces como lo hacía, muchas gracias
Adrian Maidana
grandeee queria saber justamente eso,gracias
Fernando Hofken
A los que se les dañó el código les recomiendo que si están intentando personalizar su juego mientras toman el curso mantengan las versiones fiel y personalizada por separado, lo ideal es mantenerse fiel al proyecto y personalizar todo al final cuando todo el código ya está escrito, sino en capítulos enredados como este pasa que cambian variables, dependencias, funciones etc y resulta que lo que se muestra acá solo sirve para la versión de acá, y la tuya personalizada la tenés que resolver vos, basicamente tus personalizaciones te llevan a tener un proyecto suficientemente distinto, que lo que estás viendo acá ya no te sirve.
Lu Jaramillo
Excelente consejo para dejar en las 10 primeras clases.
Luis Bastidas
Ya fue, jajaja. F
Jesús Delgado
Dañé mi código, hay muchas cosas que no quedan claras en la explicación, que lástima
Santiago Henao
Si no te queda claro, abajo del video hay una pestaña recursos, hay esta el codigo de ella, llamado mokepon. ;)
Jainelker Jesus Yepez
me pasó. ya de acá ni idea de como arreglarlo
Paula Inés Cudicio
Bueno, así va mi Mokepón, auqnue me faltan algunos assets para completar 😁😁😁
Armando Cariñez
¿como hiciste para que cada que seleccione una mascota indique?
Paula Inés Cudicio
Así va:
Orangel Brito
Sigue adelante
Tu que estas viendo esto, Respira y sigue adelante . La comunidad te apoyara en tu camino! Tu Puedes !
Juan Camilo Mesa Muñoz
Me has levantado el animo!
Rubén Ezenga Carelli
Daniel Felipe Matallana
Hola, como haces para que cada macota tenga un fondo diferente y color de letra diferente?
Santiago López
Yo supongo que cambio las clases o las tarjetas y las hizo por separado en cada una.
Alejandro Mora
Bueno, hasta aquí, han sido muchísimas emociones juntas, esta para mi, ha sido hasta el momento una de las clases más desafiantes, puesto que cómo el proyecto que estoy realizando es personalizado, mi código tiene algunas diferencias en los nombres y las llamadas de HTML los archivos de origen etc... Para aquell@s que estragaron su código o piensen que se daño, yo creo que tiene aún solución, es cuestión de un poco de paciencia y como dijo el master Freddy sobrellevar la frustración, me llevo 3 días encontrar el error, entre prueba y error conseguir encontrar la relación de los cambios en mi propio código, y es algo muy satisfactorio, más aún porque logre entender y no seguir una serie de copia y pega. No desistan! Yo no los conozco, pero se que pueden creo en ustedes, los quiero mucho.
Teo Zavala
Tienes toda la razón, muy buen mensaje.
Chrsitian Sierra
share the solution maybe?
Maximiliano Pierucci
Que vuelva Juan por favoorrr
Jonathan Lozano Alcalá
Sii, debió seguir JuanDC el curso
Johnny Ramirez
Debo ser muy honesto. Particularmente esta clase se ve que no estuvo tan bien preparada. La verdad se realizaron muchos cambios y llegue un momento que me sentí bastante confundido y solamente trataba de seguir las instrucciones de la profe sin entender realmente que realizaba.
Camila León Home
Yo también
Mauricio Baez
Pantalla UNO
Pantalla DOS
Franco Ventroni
como hiciste para que te ponga la imagen de la mascota en la segunda imagen?
Mauricio Baez
al igual que colocar el nombre de la mascota, pero colocas la imagen
function muestraMascotaJuagador(){
mokemones.forEach((mokemon) => {
if(nombreMascotaJugador == mokemon.nombre){
document.getElementById("imagen-mascota-ataque-jugador").innerHTML=<img class="imagen-mascota-ataque" src="${mokemon.imagen}" alt="${mokemon.nombre}" />;
imagenMascotaAtaqueJugadorNombre.innerHTML=${mokemon.nombre}
}
})
}
Felix Tena
40 clases y la profesora cambia el código como se le pega la gana sin explicar nada y ya mi juego no es el mismo y no entiendo donde esta mal porque ya todo esta cambiado!
bruxly Patiño
hola a me paso igual me toco ver la clase como 5 veces para encontrar los errores
Camilo Andres
debes calmarte y entender tu codigo, no sirve de nada que estes copiando y pegando o haciendo cosas que ni sabes que hacen, primero debes entender cada cosa para que cuando te ocurra un error lo puedas solucionar.
se te va a hacer dificil si lo haces todo al pie de la letra sin entender nada
Jose Daniel Lopez Marulanda
Dios, No me quiero rendir, Pero no tengo idea de como continuar, Todo iba bien, Hasta esta clase :)
Isabel Caballero Motta
¿Como sigues? ¿recuerdas lo que dijo Freddy en las primeras clases? algo muy difícil en la programación es la tolerancia a la frustración, espero no hayas rendido
Juan Camilo Santa Sánchez
Men no te rindas, esta clase hay que tomarla con mucho cautela para entenderla... Echale todo el power
Esteban Chica
Comparto mi avance y los resultados.
Sección 1:
Sección 2 VS:
Sección 2 Combate:
Sección 3 Final:
Esteban Chica
Raimond José Vargas Hernández
Como hiciste para agregar los simbolos del elemento de los ataques? con imagenes?
German Andres Rosales Banguero
la clase de la profesora Estefany fue demasiado confusa borro y edito algunas cosas que al final no era necesario despues de analizar deje cosas como estaban para no modificar el codigo de javascript y que no afectara al html
las personas nuevas en este curso no modifiquen el javascript el anterior profesor hizo muy buen trabajo!!! NO ES NECESARIO
Jhonattan Perez Gonzalez
Totalmente de acuerdo, por cosas asi es que las personas nuevas se desmotivan totalmente, para esta experiencia mejor me pongo a ver tutoriales en youtube.
Rigoberto Maldonado
jajajajaja, tu meme me causa risa, saludos
Gerónimo Pondal
se me rompio el codigo. me dejo de contar las vidas alguien sabe a que se debe?
Camilo Martinez Rozo
X2
Edwin Ahumedo
quita los appendchid y te volvera a contar las vidas, busca otra manera de hacerlo, despues de todo es programacion :D
Hola!! en css agregué el selector
<code> input:checked+label { }
y ahí les di estilos. Para que funcione correctamente tenés que asegurarte de que en el código html el input quede antes que el label y por supuesto que el id del input coincida con el for del label. Espero te sirva!
Tenía un pequeño error en las imagenes mostradas en los ataques, pero ya lo pude resolver.