1. ¿Cuál es mayor? 👵
Last updated
Last updated
Este desafío consiste en construir un juego en el que el usuario debe seleccionar el mayor entre dos números generados aleatoriamente: ¡Aquí puedes encontrar el demo!
¿Estás lista?
Por supuesto que estás lista, desde el día en que naciste 😝
Lo primero que haremos será construir los títulos y los botones. Para ello simplemente iremos al archivo app.component.html y empezaremos reemplazando su contenido con el siguiente código:
Deberías ver algo así: 👇
Ahora vamos agregar los botones. Para hacerlo vamos a usar la etiqueta <button>:
Deberías ver algo así: 👇
¡Esta es tu oportunidad de brillar! Ayúdanos agregando el título de Score utilizando la etiqueta <h1>. Cuando lo hagas, debería verse así: 👇
Nuestra interfaz luce bien, pero podría lucir mejor 😏. Vamos a agregar un poco de CSS para darle color a nuestro videojuego. Reemplaza el contenido de app.component.css con éste:
Ahora nuestra aplicación debería verse mucho mejor: 👇
¡Ya casi terminamos! 👏
¡Ahora es momento de pasar a la lógica! Nosotros utilizaremos TypeScript, que es lo mismo que JavaScript sólo que mejorado 🤝.
Lo primero que haremos es que definiremos las variables que vamos a usar en el archivo app.component.ts:
El segundo paso es inicializar los números. Para ello debemos empezar creando una función que genere números de manera aleatoria. La llamaremos generateRandomNumber():
Échale un ojo por un momento. Analiza su funcionamiento. Trata de inferir cómo funciona 👆.
Listo? 😀
Por si tienes alguna duda. Aquí te explicamos cómo funciona: 👷♀️
1. Primero definimos una variable llamada maxNumber. Ésta almacenará el número más alto que deseamos generar al azar. Puedes cambiarlo por 100 o 1000. 👍
2. En segundo lugar generamos el número aleatorio utilizando la función Math.random(). Ésta es una función propia de JavaScript y lo que hace es devolvernos un valor aleatorio entre 0 y 1. Al multiplicarlo por 10 estamos generando un número al azar entre 0 y 10. 😉
3. El último paso es remover los decimales adicionales. Ya que de otro modo tendríamos números como 6.3 o 1.5. Para sólo basta con utilizar la función Math.round() que nos permite redondear números. ⭐️
Ahora, para generar los números aleatorios basta con que los asignemos: 👇
Como habrás notado simplemente creamos la función generateNumbers() que se encarga de llamar la función que creamos para cada número. 👍
Para que el código funcione debemos asegurarnos de llamar a la función que acabamos de crear. Para ello podemos usar el constructor: 👇
¡Eso es todo! Sólo hace falta mostrar los números, que es el paso más sencillo. Abre el archivo app.component.html y reemplaza su contenido así: 👇
Por si tienes alguna duda. Aquí te explicamos cómo funciona: 👷♀️
String Interpolation es la técnica a través de la cual mostramos los números en la vista (HTML). Para ello simplemente basta con tener las variables declaradas y utilizar las llaves para mostrarla así: {{ myVariable }}
¡Cada vez que recargues el navegador verás números generados de manera aleatoria! 🎉🎉🎉
¡Parece ser que en algunas ocasiones los números se repiten! Debemos evitar esto (porque de otro modo no podríamos jugar el juego 😝).
Cuando ambos números generados aleatoriamente sean iguales vamos a volver a llamar a la función 👇
Fácil verdad? 😊
¡Es momento de comparar qué número es mayor! Lo cual es muy sencillo. Para esto necesitamos una función que:
Compare los dos números
Actualice el Score respectivamente
Genere números nuevos
Para hacerlo simplemente basta con ir al archivo app.component.ts y agregar la siguiente función:
Analiza el código de arriba. Trata de interpretarlo. ¿Lo comprendes? 😉
Por si tienes alguna duda. Aquí te explicamos cómo funciona: 👷♀️
1. Primero creamos una función que recibe dos números. Los números que vamos a comparar 👍
2. En segundo lugar hacemos la comparación. Dependiendo del resultado concatenamos los emojis respectivos (😉 o ❌).
3. El último paso es generar nuevos números aleatorios para continuar jugando. ⭐️
Estamos a punto de acabar. Sólo nos basta con hacer los que botones llamen la función que acabamos de crear cada vez que sean oprimidos. 💪
Para hacerlo vamos a ir a app.component.html y vamos a reemplazar el siguiente código:
Analiza el código. ¿Parece coherente? 👆
Por si tienes alguna duda. Aquí te explicamos cómo funciona: 👷♀️
1. Primero que todo estamos utilizando una técnica llamada Event Binding. Ella nos permite agregar eventos a nuestra vista. En este caso utilizamos el evento de Click, pero pueden ser muchos tipos: (keyup), (change), (resize), etc 💻
2. Luego simplemente escribimos el método que deseamos llamar cuando el evento se ejecute. En este caso estamos llamando a la función isGreater() que creamos anteriormente.
3. Notarás que el primer botón pasamos leftNumber y luego rightNumber, pero en el segundo botón invertimos el orden. Esto es porque la función que creamos va a determinar si el primer parámetro que se le pasó es mayor que el segundo parámetro. ⭐️
¡Revisa tu aplicación!
Cada vez que hagas click en un botón debería generar nuevos números aleatorios. 📱
Parece que nuestra aplicación está lista excepto por un pequeño detalle 😵. Parece que no está mostrando el Score.
⭐️ Utiliza String Interpolation para mostrar el Score. Usa la etiqueta <h2> ⭐️
¡Cuando lo hayas hecho, habrás terminado el primer desafío!
Aquí puedes encontrar el ejercicio resuelto.
Has completado el desafío #2, ahora vamos a el desafío #3 👇
Nota:
Si necesitas mentoría con este ejercicio puedes contactar a:
Juan Herrera Twitter: @jdjuan Correo: david.juanherrera@gmail.com