Si tienes que copiar y pegar el mismo código eso merece ser una función
Fundamentos de Programación
Bienvenida a Platzi: ¿qué necesitas para tomar el curso?
Programación en Navegadores: Primeros Pasos
Crea tu primer sitio web
Sitios web con HTML
Estructura de árbol en HTML
Instalando tu primer editor de código
Cómo declarar variables y usar prompt
Algoritmo de piedra, papel o tijera
Algoritmo avanzado de piedra, papel o tijera
Aleatoriedad
Refactor del código usando funciones
Ciclos
Gana 3 veces
Archivos de HTML y JavaScript
¿Qué es el DOM?
Quiz: Fundamentos de Programación
Desarrollando un juego con HTML y JavaScript
Maquetación con HTML
Sección de elegir mascota
¿Dónde ubicar la etiqueta script? Conectando HTML con JavaScript
Escuchando eventos con JavaScript
addEventListener
Manipulación del DOM
Enemigos aleatorios
Ataques en JavaScript
Ataques aleatorios del enemigo
Imprimiendo ataques del enemigo
¿Ganaste, perdiste o empataste?
Tablas de verdad
Creando el contador de vidas
¿Quién ganó el juego?
Reiniciando el juego
Ocultando elementos HTML con JS para mejorar la UX del juego
Quiz: Desarrollando un juego con HTML y JavaScript
Estilos con CSS
Anatomía de CSS
Tipos de display
Flexbox
Modelo de caja
Imágenes para los Mokepones
Estilos del botón
Adaptando HTML al diseño del juego
Layout: título y ataques
Adaptando JavaScript al diseño del juego
CSS Grid
Responsive Design
Detalles finales
Quiz: Estilos con CSS
Optimización de código
Revisión de código
Don't repeat yourself (DRY)
Clases y objetos
Clases y objetos de Mokepon
Arrays o arreglos
Objetos vs. arreglos
Ciclos: manipulando el DOM con iteradores
Declaración lenta de variables
Una sola fuente de la verdad
Mascotas aleatorias con arreglos
Ataques dinámicos por cada mascota: extraer
Renderizado dinámico en HTML
Eventos de click dinámicos
Secuencia de ataques del enemigo
Iniciando el combate
Resolviendo el reto de condicionales
Optimizando el frontend del juego
Quiz: Optimización de código
Mapa con canvas
Introducción a canvas: dibujando con JavaScript
Moviendo a Capipepo hacia la derecha
Movimiento hacia todas las direcciones
Movimientos con el teclado
Imágenes y personajes de fondo
Métodos en las clases
Obstáculos y colisiones
Combate entre mokepones colisionados
Mapa responsive
Botones bonitos y viewport
Quiz: Mapa con canvas
Backend: videojuego multijugador
¿Qué es backend?
Instalación de Node.js y NPM
Terminal de comandos y Node.js
Servidor web con Express.js
HTTP, localhost, servidores y puertos
Express.js y fetch: API REST con JavaScript
JSON y POST: mokepon online
Transmisión de coordenadas
Mokepones dinámicos en el mapa
Optimizando el mapa del juego
Batalla entre jugadores
Consumiendo la API de ataques del enemigo
Quiz: Backend: videojuego multijugador
Próximos pasos
Probando el juego en varios dispositivos
¿Y ahora qué curso tomar?
No tienes acceso a esta clase
¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera
Freddy Vega
Hay actividades rutinarias que realizamos siguiendo los mismos pasos una y otra vez. En programación esto se llaman funciones, y es momento de usarlas en nuestro ejercicio de piedra, papel o tijera.
Piensa en tu mente como si fuera un programa de computadora. Cepillarte los dientes es una tarea de todos los días. Entonces ¿escribirías de nuevo el código para cepillar tus dientes todos los días?
Pues, no. Lo que harías es guardar los pasos en tu memoria (con una función), y luego invocarlos cada vez que tengas que cepillarte los dientes.
Lo mismo ocurre en la programación. Solo tienes que seguir la regla de oro: Si tienes que copiar el código y pegarlo en otro lado, entonces mejor conviértelo en una función. Así puedes invocarlo tantas veces necesites.
Hay varias formas de declarar una función. Pero la más básica de todas consiste en escribir la palabra reservada function
, seguida de la función con sus parámetros entre paréntesis, y el bloque de código entre llaves { }
.
Ejemplo:
function hacerAlgo( param1 , param2 ) {
let resultado = param1 + param2;
return resultado;
}
hacerAlgo( 3 , 4 ); //Devuelve 7
💡 Cuando ejecutas la función, esta ejecuta todo el código que insertaste dentro de las llaves { }
cuando la declaraste. De este modo, puedes ejecutar la función tantas veces como necesites con solo declararla una vez.
💡 Cuando la declaras, puedes indicar parámetros y usarlos dentro del bloque de código. Luego, cuando la ejecutes, esos parámetros se sustituirán con los valores que escribas entre paréntesis al momento de ejecutarla.
💡 También puedes usar la palabra reservada return
dentro del bloque de código de la función para que, al ejecutarla, recibas el valor que indiques luego de escribir return
(ojo, cuando la función llega a un return
, su ejecución se detiene. Los comandos que escribas después de un return
no se van a ejecutar).
💡 Ojo, todas las funciones deben empezar por una letra. No pueden iniciar con un número o un símbolo, siempre deben empezar por una letra (y la práctica común es que sea una letra minúscula en el caso de variables y funciones).
Las funciones, al momento de ejecutarlas, tienen una estructura similar: Un nombre, seguido por sus parámetros entre paréntesis.
💡 Ojo, si la función no usa parámetros, igual necesitas escribir los paréntesis para que tu computadora entienda que tiene que ejecutar la función. Por ejemplo: alert()
.
función( parámetro1 , parámetro2 )
Luego tienes dos casos de uso:
alert()
), entonces puedes ejecutarla por si sola en una línea de código (como ves en el ejemplo de arriba).return
, entonces suele usarse para asignar valores a otra variable.Por ejemplo:
ganador = mejorEntre( opcion1 , opcion2 );
{height="" width=""}
Es una buena práctica escribir las funciones al inicio del código. Los navegadores suelen ser permisivos cuando creas sitios web, pero la mayoría de los lenguajes de programación son estrictos sobre este punto.
En general, declara tus funciones antes de usarlas 👍
Es hora de mejorar la calidad del código usando funciones.
Empecemos por optimizar las alertas que indican la elección del jugador y del computador:
Si te fijas bien, el algoritmo que nos informa nuestra elección y la del computador son muy parecidos, y podemos reemplazarlo con una función:
//INFORMANDO LA ELECCIÓN DEL JUGADOR
if ( eleccionDelJugador == 1 ) {
alert( "Elegiste 🥌" );
} else if ( eleccionDelJugador == 2 ) {
alert( "Elegiste 📄" )
} else if ( eleccionDelJugador == 3 ) {
alert( "Elegiste ✂️" )
} else {
alert( "Elegiste otra cosa, así no puedes jugar 😣" )
}
//INFORMANDO LA ELECCION DEL COMPUTADOR
if ( eleccionDelComputador == 1 ) {
alert( "La computadora eligió 🥌" );
} else if ( eleccionDelComputador == 2 ) {
alert( "La computadora eligió 📄" )
} else if ( eleccionDelComputador == 3 ) {
alert( "La computadora eligió ✂️" )
} else {
alert( "Cometí un error programando la elección del computador 🙃" )
}
Intenta hacerlo por tu cuenta, luego puedes compararla con la posible solución de abajo.
💡 Ojo, esta igual necesita que la encajes bien con tu código para que el programa siga funcionando. Así que no temas experimentar y hacer ajustes poco a poco para que funcione el juego. Al final te mostraré un ejemplo con el código completo usando funciones 😉
//FUNCIÓN PARA LAS ALERTAS
function alertaDeElecciones( quienElije , eleccion ) {
if ( eleccion == 1 ) {
alert( "El " + quienElije + " eligió 🥌" );
} else if ( eleccion == 2 ) {
alert( "El " + quienElije + " eligió 📄" )
} else if ( eleccion == 3 ) {
alert( "El " + quienElije + " eligió ✂️" )
} else {
alert( "Hubo un error con la elección del " + quienElije + " 🙃" )
}
}
En estos momentos puede que no veas la necesidad de convertir esto en una función. Pero piensa por un momento que quieres convertir este juego en algo serio, que en el futuro podrías implementar un modo para dos jugadores, o una versión en línea.
En ese sentido, te conviene convertir la decisión del ganador en una función que puedas ejecutar para cualquiera de los modos de juego que implementes.
💡 Si no es por eso, al menos hazlo a modo de práctica 😅 Intenta hacerlo por tu cuenta, luego compara con la solución de abajo 👍
//FUNCIÓN PARA DECIDIR EL GANADOR
function quienGanaEntre ( eleccionJugador , eleccionOponente ) {
if ( eleccionJugador == eleccionOponente ) {
alert( "¡EMPATE! 🤼" );
} else if ( eleccionJugador == 1 && eleccionOponente == 3 ) {
alert( "¡GANASTE! 🥳" );
} else if ( eleccionJugador == 2 && eleccionOponente == 1 ) {
alert( "¡GANASTE! 🥳" );
} else if ( eleccionJugador == 3 && eleccionOponente == 2 ) {
alert( "¡GANASTE! 🥳" );
} else {
alert( "PERDISTE... 😢" );
}
}
Recuerda que, por lo general, hay varias soluciones al mismo problema. Lo que ves abajo es solo una forma de crear este pequeño videojuego.
No te preocupes si tu código aún no se ve así. Lo más importante es que lo intentes por ti mismo y llegues al resultado. Luego el tiempo y la experiencia te ayudarán a escribir código más presentable, o más optimizado 👍
//FUNCIÓN PARA LAS ALERTAS
function alertaDeElecciones( quienElije , eleccion ) {
if ( eleccion == 1 ) {
alert( "El " + quienElije + " eligió 🥌" );
} else if ( eleccion == 2 ) {
alert( "El " + quienElije + " eligió 📄" );
} else if ( eleccion == 3 ) {
alert( "El " + quienElije + " eligió ✂️" );
} else {
alert( "Hubo un error con la elección del " + quienElije + " 🙃" );
}
}
//FUNCIÓN PARA GENERAR NÚMEROS ALEATORIOS
function numeroAleatorio( min , max ) {
return Math.floor( Math.random() * ( max - min + 1 ) + min );
}
//FUNCIÓN PARA DECIDIR EL GANADOR
function quienGanaEntre ( eleccionJugador , eleccionOponente ) {
if ( eleccionJugador == eleccionOponente ) {
alert( "¡EMPATE! 🤼" );
} else if ( eleccionJugador == 1 && eleccionOponente == 3 ) {
alert( "¡GANASTE! 🥳" );
} else if ( eleccionJugador == 2 && eleccionOponente == 1 ) {
alert( "¡GANASTE! 🥳" );
} else if ( eleccionJugador == 3 && eleccionOponente == 2 ) {
alert( "¡GANASTE! 🥳" );
} else {
alert( "PERDISTE... 😢" );
}
}
//ELECCIÓN DEL JUGADOR
let eleccionDelJugador = 0;
eleccionDelJugador = prompt( "Elige: 1 para 🥌, 2 para 📄, 3 para ✂️" );
alertaDeElecciones( "jugador" , eleccionDelJugador );
//ELECCIÓN DEL COMPUTADOR
let eleccionDelComputador = numeroAleatorio( 1 , 3 );
alertaDeElecciones( "computador" , eleccionDelComputador );
//DECIDIENDO EL GANADOR
quienGanaEntre ( eleccionDelJugador , eleccionDelComputador );
Contribución creada por: Jhonkar Sufia (Platzi Contributor).
Aportes 470
Preguntas 282
Si tienes que copiar y pegar el mismo código eso merece ser una función
MIS APUNTES CON MUCHO 💚 FOR ALL OF YOU
Buena tardes, Quiero compartir mi código, estoy muy contenta con el curso, nunca había estudiado nada al respecto, mi profesión no tiene nada que ver con la programación. Gracias por la excelente forma de enseñar 😃
No puedo creer que con tan pocas clases este entendiendo javascript. Esta BRUTAL.
Me ha costado entenderlo, pero sé que es cuestión de seguir aprendiendo y practicando 💚
{ } llaves
[ ] corchetes
( ) paréntesis
por lo menos así los conozco yo.
esto es lo que programé que dijera 😃
Para recordar:
Si tienes que copiar y pegar el mismo código muchas veces, entonces debería ser una función
Hoisting, buena explicación aquí La cocina del código, muy buen canal…
Yo: no entendi un pomo
Freddy: subamosle el nivel
Otra vez yo : 😒😢
Hola, me encanta la forma en la que explicas sin embargo como sugerencia, me parece que este video es muy importante y se hace muy rápido teniendo en cuenta que somos novatos jeje.
Pasar de una linea de código “obvia” a convertirlo a una FUNCIÓN, merece hacerse un poco mas explicado… siguiendo tus pasos obvio lo logro, pero el día de mañana que me toque hacer una función a mi solito, no creo poder porque no entendí, solo seguí tus pasos (No se si sea al único que le paso eso jeje)
Funciones o también llamados Métodos, son básicamente fragmentos de código o rutinas que puedes reutilizar una y otra vez, y las veces que quieras, sin tener que copiar y pegar el mismo código cada vez que lo vayas a usar.
.
Si tienes que copiar y pegar el mismo código en al menos dos lugares, es un indicio de que debes usar una función.
.
Por ahora no se tienen que preocupar de esto pero tengan en cuenta que una Clase esta compuesta por un conjunto de varias funciones y variables. 👍
recomiendo ir programando mientras Freddy lo hace
LES DEJO UN POCO DE DEFINICIÓN DE CONCEPTOS:
Al definir una función, lo que va entre los paréntesis se llaman PARÁMETROS, y son los valores que la función espera recibir para poder funcionar adecuadamente. Una función puede o no tener parámetros, tal cómo lo menciona Freddy.
Cuando invocamos la función, esos valores que le enviamos se llaman ARGUMENTOS, y son los valores que le pasamos a la función en sus parámetros para que pueda funcionar adecuadamente.
FUNCIONES:
Grupos de acciones que se repiten varias veces. En programación, son pedacitos de código que se escriben con el propósito general de reusarlos varias veces.
Cuando la función lleva la palabra function se está: DECLARANDO (Creando)
Cuando la función No lleva la palabra función se esta: INVOCANDO (Ejecutando)
Ejemplo del programa que explica Freddy
Hola, creé un programa con el ejemplo animado que explica el profesor en el 1:29 😄 sobre todo lo hice para darme claridad con el uso de return ya que me costó entenderlo. Espero que pueda ayudar a alguien. Recuerden que return sirve para guardar el proceso que ocurre en la función y ejecutarlo en otro lado, como lo hago al final del código para que muestre una oración con los dos argumentos 😁
<html>
<head>
<meta charset="utf-8" />
<title>Elección de comida</title>
<script>
function traer(comida, lugar) {
let decision = "El alimento deseado es: " + comida + ". El lugar para recogerlo es: " + lugar
return decision
}
let alimento = prompt("Seleccione el alimento que desea tener")
let origen = prompt("Seleccione el lugar para recoger su alimento")
alert(traer(alimento, origen))
</script>
</head>
<body>
</body>
</html>
Luego de horas buscando por que no me funcionaba el código y revisando desde github, el vídeo y el código que está en la parte inferior de temario no lo encontraba, solo pude verlo gracias a los colores de mi tema, me di cuenta que no tenía bien escrito la function, me faltaba la c, estuve horas leyendo y buscando jajaja. por si a alguien le ocurre, los colores ayudan
Voy a llorar porque recien entendi Hoisting :’))) gracias a todos por los aportes
Honestamente, así tenía organizado mi código porque pensé que se veía más estético (lol) ya lo cambié a como debe ser
Notas de la clase:
Términos relacionados con funciones en programación:
Declarar o Definir: describir en lógica de programación que es lo que va a hacer la función.
Invocar o llamar: mandar a llamar la función para usarla.
variable tipo función: una variable es un espacio en memoria reservado para algo en particular.
Parámetros: Son valores predeterminados que tomará dicha función para trabajar.
corchetes o llaves: definen el bloque de código.
Bloque de código: espacio de ejecución de unas instrucciones previamente definidas.
Tipos de variables anónimas (sin nombre), por expresión, autoejecutables. Si quieren leer más al respecto: Más sobre funciones en Javascript
aprendí por la malas que no se usan los acentos
Los corchetes, llaves, “como le squieran llamar” ó “estos bichitos de acá” 🤷♀️ {}. aparecen dependiendo de la distribución de teclado y la configuración del Sistema operativo. En Windows 10 pueden ir a la Configuración (Win + i) > Hora e idioma > lenguajes preferidos Ahí hay una opción con el idioma y teclado, al dar click aparece “opciones” y desde allí pueden configurar el teclado…
Ahora, siempre que se instala Windows se puede indicar el país pero NO SE CONFIGURA LA DISTRIBUCIÓN DEL TECLADO que tengamos, y en cualquier país de LATAM aparecerá la distribución Latinoamérica, pero el teclado puede tener la distribución de España.
Generalmente la distribuciones se identifica porque:
*La arroba sale presionando la tecla ALT o ALT GR a la derecha de la barra espaciadora y el 2 o la Q
Así que dependiendo del teclado de cada uno, en la config de Windows se puede cambiar a la distribución correcta
Los nombres de las funciones SIEMPRE empiezan por una letra, es una buena práctica que EMPIECE EN MINÚSCULA
Programar = Equivocarse
Equivocarse = Aprender
errores errores este video lo vi mil veces y no me salia y habia llamado mal a una funcion no se den por vencidos
Así me quedó con las funciones
<HTMl:5>
<head>
<meta charset="utf-8" />
<title>Rock Paper Sissors</title>
<script>
// Función para generar numeros aleatorios entre un rango asignado
function generarEnterosAleatorios(min, max) {
return Math.floor(Math.random() * (max - min + 1)) + min;
}
// Función para interpretar elegir un numero
function numeroElegido(seleccionJugador) {
let eleccion = ""
if(seleccionJugador == 1) {
return eleccion = "piedra"
} else if(seleccionJugador == 2) {
return eleccion = "papel"
} else if(seleccionJugador == 3) {
return eleccion = "tijera"
} else {
return eleccion = "No elegiste una opción válida"
}
}
// La computadora elige aleatoreamente un número entre 1 y 3
let eleccionpc = generarEnterosAleatorios(1,3)
//El jugador elige: 1 es piedra, 2 es papel, 3 es tijera
let eleccionjugador = 0
eleccionjugador = prompt("Elige 1 para piedra, 2 para papel, 3 para tijera")
//variable resultado
let resultado = 0
//Cuando el jugador gana
if((numeroElegido(eleccionjugador) == "piedra" && numeroElegido(eleccionpc) == "tijera")
|| (numeroElegido(eleccionjugador) == "papel" && numeroElegido(eleccionpc) == "piedra")
|| (numeroElegido(eleccionjugador) == "tijera" && numeroElegido(eleccionpc) == "papel")) {
resultado = "GANASTE"
//Cuando el jugador empata
} else if(eleccionjugador == eleccionpc) {
resultado = "EMPATARON"
//Cuando el jugador pierde
} else {
resultado = "PERDISTE"
}
//Imprimir resultado
alert("Elegiste " + numeroElegido(eleccionjugador) + "\n\nLa computadora eligió " + numeroElegido(eleccionpc) + "\n\nResultado: " + resultado)
</script>
</head>
<body>
<h1>PIEDRA PAPEL O TIJERA</h1>
<p>Este es nuestro primer programa complto y profesional</p>
<p>Gran programa</p>
</body>
</HTMl:5>
Les comparto el codigo de mi practica del juego con funciones:
<!DOCTYPE html>
<html>
<head>
<meta charset=“utf-8” />
<title>Piedra, papel o tijera Version 2</title>
<script>
function aleatorio(min,max){
return Math.floor(Math.random()*(max-min+1)+min)
}
function opcion(op){
if(op == 1){
return “piedra”
}
else if(op == 2){
return “papel”
}
else if(op == 3){
return “tijera”
}
else {
return “perder”
}
}
// 1 es piedra 2 es papel, 3 es tijera
let jugador = 0, pc = 0
let numVictorias=0, numEmpates=0, numDerrotas=0
let mensaje = ""
for (let i=1; i<=5; i++){
pc=aleatorio(1,3)
jugador = prompt("Elige: 1 para piedra, 2 para papel, 3 para tijera ")
mensaje=opcion(jugador)
alert("Jugador eligio "+mensaje)
mensaje=opcion(pc)
alert("La PC eligio "+mensaje)
// COMBATE
if(jugador == pc){
alert("EMPATE")
numEmpates++
}
else if(jugador == 1 && pc == 3){
alert("GANASTES")
numVictorias++
}
else if(jugador == 2 && pc == 1){
alert("GANASTES")
numVictorias++
}
else if(jugador == 3 && pc == 2){
alert("GANASTES")
numVictorias++
}
else {
alert("PERDISTES")
numDerrotas++
}
}
alert("Ganastes: "+numVictorias+" veces\nEmpatastes: "+numEmpates+" veces\nPerdistes: "+numDerrotas+" veces")
</script>
</head>
<body>
<h1>Juego de Piedra papel o tijera Version con funciones</h1>
</body>
</html>
No es el mejor algoritmo pero estoy feliz porque lo logré con pocos intentos, espero les sirva ❤️
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Juego</title>
<script>
// piedra = 1, papel = 2. tiejara = 3
let resultado = 0
const opcion1 = "piedra"
const opcion2 = "papel"
const opcion3 = "tijera"
const max = 3
const min = 1
const jugador = prompt("Elige: 1 para piedra, 2 para papel y 3 para tijera")
const pc = Math.floor(Math.random() * (max - min + 1) + min)
function decision(jugador, pc){
if (jugador == pc){
resultado = alert("Empate")
}
else if(jugador == 1 && pc == 2){
resultado = alert("Elegiste " + opcion1 + " pc elige " + opcion2 + "\n" + "¡PERDISTE!")
}
else if(jugador == 2 && pc == 3){
resultado = alert("Elegiste " + opcion2 + "pc elige " + opcion3 + "\n" + "¡PERDISTE!")
}
else if(jugador == 3 && pc == 1){
resultado = alert("Elegiste " + opcion3 + "pc elige " + opcion1 + "\n" + "¡PERDISTE!")
}
else if(jugador == 2 && pc == 1){
resultado = alert("Elegiste " + opcion2 + "pc elige " + opcion1 + "\n" + "¡GANASTE!")
}
else if(jugador == 3 && pc == 2){
resultado = alert("Elegiste " + opcion3 + "pc elige " + opcion2 + "\n" + "¡GANASTE!")
}
else if(jugador == 1 && pc == 3){
resultado = alert("Elegiste " + opcion1 + "pc elige " + opcion3 + "\n" + "¡GANASTE!")
}
else alert("Elección incorrecta :(")
return jugador
}
decision(jugador, pc)
</script>
</head>
<body>
<h1>Mi primer juego</h1>
</body>
</html>
Súper contenta con las clases. Aquí mi aporte. Yo utilice arrow function, estas son funciones de tipo flecha que nos permiten crear funciones de una manera más limpia en comparación con las funciones regulares. Igual es algo que seguramente veremos más adelante. A darle!!
No fui capaz de recortar mas el código 😒
Les adelanto lo que quizá sea un Spoiler, pero puede les sirva si tuvieron algun inconveniente.
La función que retorna la jugada aleatoria de la PC es un numero, mientras la nuestra (prompt) es un String.
CTRL+K CTRL+F
https://youtu.be/e3EyqGnb6XM
si aun te cuesta entender las funciones te recomiendo este video y nunca pares de aprender
Va mi aporte! Usé la misma función para mostrar el resultado al final😃
Asi se ve:
Aqui mi aporte. Mismo juego, pero con una **temática **distinta.
Cuando Freddy dijo: Es como cuando a un pintor se le va una pincelada y dice “Esto será un lindo arbolito” automáticamente pensé en esto"
acabo de notar que si eligo una opción “rebelde” no importa cuantas veces lo haga la pc siempre gana 😮
Gracias por la clase, muy bien explicado,
Realmente no entiendes lo que explica de la frustración por algún elemento faltante hasta que lo vives en carne propia, nunca había querido y odiado tanto a un signo = hasta que realice el código de esta clase jajajajaja
Estoy muy contento de entender poco a poco Javascript, conozco lo básico de HTML y CSS pero no me atrevía a dar el paso a un lenguaje de programación.
¡Vamo a darle! 💪
TOP NOTES:
I’m also practising in English. I look forward to your feedback ☕
Estuve rompiéndome la cabeza mirando el código y me di cuenta que no me mandaba resultados porque en un lado escribí “election” y en otro lado “eleccion” xD
Eres un crack enseñando
Soy novato en el tema, pero nunca me imaginé lo interesante que es programar. Espero aprender mucho más y ser un experto como veo de muchos acá.
Excelente instructor Freddy Vega
Este curso es fascinante, he aprendido muchas cosas a este punto, con código pude calcular los capítulos que ha visto un amigo de su serie favorita (También funciona para cualquier serie), y este es el código que escribí para hacerlo, sé que no es perfecto, pero sí funcional
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Capitulos de la serie</title>
<script>
function capiTotales(cap, numeroDeTemporada, capPortemporada){
return Math.floor(numeroDeTemporada * capPortemporada - (capPortemporada - cap))
}
let capitulo = 0
let temporada = 0
let capTemporada = 0
temporada = prompt("Escribe por cuál temporada vas")
capitulo = prompt("Escribe por cuál capitulo vas")
capTemporada = prompt("Escribe cuántos capitulos hay por temporada")
let capitulosVistos = capiTotales(capitulo, temporada, capTemporada)
alert ("Has visto " + capitulosVistos + " capitulos en total")
</script>
</head>
<body>
</body>
</html>
<code>
Ejemplo:
Revisen que tengan bien escrito el alert, dure como 3 horas con un error, y era que tenial mal escrito alert, y no hacia el combate.
Hola, quiero compartir lo que se aprendio en clase, funciona super bien.
<!DOCTYPE html>
<html>
<head>
<meta charset=“utf-8” />
<title>Piedra, Papel o Tijera</title>
<script>
function aleatorio (min, max) {
return Math.floor(Math.random () * (max - min + 1) + min)
}
function eleccion(jugada) {
let resultado = ""
if(jugada == 1) {
resultado = “Piedra ✊”
} else if (jugada == 2) {
resultado = “Papel ✋”
} else if (jugada == 3) {
resultado = “Tijeras ✌”
} else{
resultado = “😒Mal elegido 🤷♀️”
}
return resultado
}
// 1 es piedra, 2 es papel, 3 es tijera
let jugador = 0
let min = 1
let max = 3
let pc= aleatorio(1,3)
jugador = prompt("Elige: 1 para piedra, 2 para papel, 3 para tijera")
//alert("Elegiste " + jugador)
alert("Pc elige: " + eleccion(pc))
alert("Tu eliges: " + eleccion(jugador))
// COMBATE
if(pc == jugador){
alert("😲EMPATE😳")
} else if(jugador == 1 && pc == 3) {
alert("🎊GANASTE🍻")
} else if(jugador == 2 && pc == 1) {
alert("🎖GANASTE🥂")
}else if(jugador == 3 && pc == 2) {
alert("🍰GANASTE🍾")
}else {
alert("💔PERDISTE💔")
}
</script>
<body>
<h1>Piedra, Papel o Tijera</h1>
</body>
</head>
</html>
🤓 REUTILIZACIÓN DEL CÓDIGO!!!
Siempre que veas código que al parecer sede usarse varias veces, intenta no repetirlo.
Las funciones pueden ayudarte con esto.
Si quieres mostrar el mismo mensaje varias veces en tu código, no lo repitas, solo encierra este código en una función y ejecuta esa función cuantas veces quieras.
mi codigo anterior tambien usa un loop para jugar 5 veces y enttega el resulem de los resultados de los juegos, espero lo revisen y comenten
Hice una función más para el combate, es parecida a la de las alertas
Esta es mi función que implementa la lógica del juego
function juego(pc, human) {
let resultado = "PERDISTE";
if (human == pc) resultado = "EMPATE";
if (human == 1 && pc == 3) resultado = "GANASTE";
if (human == 2 && pc == 1) resultado = "GANASTE";
if (human == 3 && pc == 2) resultado = "GANASTE";
return resultado;
}
Dato curioso, la variable pc es un INT y la variable jugador es un STRING
Créeme que aquí vamos! 🧻
Remember
Si tienes que copiar y pegar el mismo código muchas veces, entonces debería ser una función
PRO TIP para tener siempre bien formateado el código:
Activar en preferencias del VSCode la opción Format on save
:
De esa manera, cada que guardemos nuestro archivo lo formateará automáticamente, corrigiendo cosas como el indentado, espacios innecesarios o faltantes, comillas, paréntesis, y un largo etcétera.
Espero sea útil, saludos! 😄
¡RECUERDEN! Mantener el mismo nombre de sus variables, y si van a cambiarla, les recomiendo seleccionar la variable que cambiaran y utilizar el comando CTRL+D, que les permite seleccionar a misma variable la veces que se encuentre repetida.
(el comando de CTRL+D lo aprendi en un comentario que hicieron, lean los comentarios, entre todos, construimos el edificio del conocimiento)
hay tres tipos de funciones.
Funciones que no retornan nada por ejemplo alert(“soy una función pero no retorno nada”) es curioso la función alert no solo funcione con cadenas de texto o string también funciona con números enteros (8), booleanos(2.342).
Vamos con el segundo tipo y es tipo de función que no tiene parámetros Math.random() y lo que en realidad estoy haciendo ahí es invocarla para que se ejecute de inmediato de igual forma pasa con la función alert(123134).
Y por ultimo está la que retorna algo y aquí si la declaro para luego invocarla para poder crear una función debo de escribir la palabra sagrada function ojo si la f va en mayuscula no va funcionar luego le paso el nombre a mi función puede ser cualquier nombre pero nunca debe de empezar con un signo especial como ¿*"! y con un numero 637543 siempre debe de empezar con una legra esto respeta las reglas para declarar variables este nombre que le paso a mi función es una variable pero, pero de tipo función luego abro paréntesis y dentro va algo que se llama parámetros y escribo mis variables si son muchas separadas por una coma (,) y luego cierro el paréntesis después dejo un espacio y abro llaves ({) y cierro(}) dentro de las llaves voy a escribir todo el código que quiero que me retorne con la palabra sagrada return.
encontré 2 extensiones para VS code que son muy útiles.
. La primera es ident-rainbow : Te ayudara a ver el orden de la identación , que es de lo que habla Freddy sobre mantener cada bloque de código alineado a un margen.
. La segunda es Error Lens : Nos va a mostrar instantáneamente algún error que cometamos escribiendo una línea de código; La línea va a quedar resaltada en rojo, alertándonos de que hay un error.
quizás han leído un código que postee errado en una de las anteriores clases. Bueno encontré una forma mas simple y funcional de hacer el combate. y funciona.
if (pc==jugador){
alert("EMPATE")
}else if(Math.abs(pc-jugador)==1 && pc<jugador){
alert("HAS GANADO")
} else if (Math.abs(pc-jugador)==2 && pc>jugador){
alert("HAS GANADO")
}else {
alert("HAS PERDIDO")
}
Un compañero y yo hicimos esta calculadora que:
suma
resta
multiplica
divide
saca porcentajes
con lo aprendido en las doble condición; if y else
CALCULADORA
<html>
<head>
<script>
// 1. sumar, 2. restar, 3. multiplicar, 4. dividir, 5. porcentaje
let usuario = 0
usuario = prompt (" Elige: 1. sumar, 2. restar, 3. multiplicar, 4. dividir, 5. porcentaje")
valor1 = parseInt(prompt ("introduce el primer valor "))
valor2 = prompt ("introduce el segundo valor si no es porcentaje ")
let resultado
// alert (" elegiste " + usuario)
if (usuario == 1) {
resultado = (valor1 + parseInt(valor2))
} else if (usuario == 2) {
resultado = (valor1 - parseInt(valor2))
} else if (usuario == 3) {
resultado = (valor1 * parseInt(valor2))
} else if (usuario == 4) {
resultado = (valor1 / parseInt(valor2))
} else if (usuario == 5) {
resultado = (valor1 / 100)
}
alert (resultado)
</script>
</head>
<body>
</body>
</html>
siiiiiiuuuuuuuuuuuuuuuu
Las llaves pueden llamar en ingles “mustache” que es “bigote” en espaniol 〰️ lo que lo hace divertido. En ingles el termino normal pero menos divertido es “curly brackets” o “braces”.
DEJO MI CÓDIGO POR SI NO LES CORRE, TUVE QUE ORDENAR TODO DE UNA FORMA METICULOSA PARA QUE CORRIERA
<!DOCTYPE html>
<head>
<meta charset=“utf-8”/>
<title> PIEDRA, PAPEL O TIJERA</title>
<script>
function aleatorio(min,max)
{return Math.floor(Math.random()*(max-min+1)+min)}
function eleccion(jugada)
{ let resultado = "HOLA"
if (jugada == 1) { resultado = “PIEDRA”}
else if (jugada == 2) { resultado = “PAPEL” }
else if (jugada == 3) { resultado = “TIJERA”}
else {resultado = “NULO”}
return resultado
}
let jugador = 0
jugador= prompt("ELIGE UN NUMERO DE 1 A 3")
alert("TU ELIGES:---- " + eleccion(jugador))
let pc = aleatorio(1,3)
alert("PC ELIGE: " + eleccion(pc))
//COMBATE
if (pc == jugador) {alert(“EMPATE”)}
else if (jugador == 1 && pc == 3) {alert(“GANASTE”)}
else if (jugador ==2 && pc == 1) {alert(“GANASTE”)}
else if (jugador ==3 && pc == 2) {alert(“GANASTE”)}
else {alert(“PIERDES”)}
</script>
</head>
<body>
<h1>PIEDRA, PAPEL O TIJERA</h1>
</body>
</html>
Este es el código que hice e intenté refactorizar. En el combate, utilicé un método que mencionaron en clases pasadas, según los comentarios, usando [inserte música tenebrosa] ¡ÁLGEBRA, pero sencilla! 😉
.
Lo que se intenta hacer es crear una matriz donde se resten las posiciones del Jugador y PC (en mi caso lo hice PC - jugador, ¿por qué? ¡Porque sí, jeje!). Obtendrás los números que indican si es un empate, si gana el jugador o si pierde.
.
Recuerda, el álgebra es tu amigo, no tu enemigo. 🤭
.
Acepto retroalimentación para optimizar y hacer más eficiente el código. ¡Gracias! 😋
.
Tuve un error al corregir el final del código, resulta que el navegador no mostraba mi elección ni la del PC en el alert, razón? me olvidé de borrar el doble igual ( == ) de la variable resultado en lugar de dejar solo uno, lo que hizo que se compararan en lugar de asignarle el texto XD
Me tardé un buen rato en detectar este simple error jajaja
Cosas importantes:
Las funciones son pedacitos de código que mientras los escribamos de una manera de propósito general podemos reusarlos muchas veces
Una regla muy Importante es que nunca debes estar copiando el mismo código; eso merece ser una función para ser invocada cuando la necesites
La función te permite traer cosas de lugares
Las funciones son verbos (acciones)” traer”
Y estas deben temer parámetros, es decir (Que deben hacer)
Las funciones son nombres de variables
Es una buena práctica que comiencen por una letra y que esta sea en minúscula
Y los parámetros siempre van entre paréntesis
El resultado de esa función es lo que vamos a colocar en una variable (o sea, el que)
Y a esto de doy un RETURN (que es lo que espero que me devuelva)
Se considera una buena práctica:
Primero declaro las funciones que voy a usar en mi programa
Y luego las uso
Antes de usar una función, primero la debo definir, declarar (que es básicamente escribirla)
Por eso la escribimos debajo de donde esta nuestra función aleatoria
La palabra function debe ir en minúscula.
Luego va un espacio
Lo que hacemos, es que aquí debajo de la función aleatorio vamos a crear una nueva función y esa nueva función la vamos a llamar elección y lo que le pedimos por parámetro es el tipo de jugada que hice, de esa manera sé qué voy a elegir una vez más abrimos llaves
function elección (jugada){
}
Programar es manejar la frustración del error perdido
Y lo que voy hacer es cargar acá mi elección, es decir voy a copiar y lo voy a ajustar un poquito y lo ajusto con TAB.
Lo que queremos hacer es que esta función me RETORNE EL RESULTADO.
Entonces, lo que voy hacer es Dentro de la función voy a crear una variable que se llame resultado y le voy a crear un stream vacío
Let resultado = “ “
Reemplazo jugador por jugada y en vez de alert disparo un resultado = abro comillas y quito paréntesis en todos los renglones, al último le agregamos opción invalida
Resultado = “piedra”
Resultado = “papel”
Resultado = “tijera”
Resultado = “OPCIÓN INVALIDA”
Ahora tengo que retornar el valor
¿Y que es lo que retorno? Pues la variable resultado
Return resultado
Entonces yo ya sé que hay una variable jugada que entra por parámetro
Que:
Si la jugada es 1 resultado es = a piedra
Si la jugada es 2 resultado es = a papel
Si la jugada es 3 resultado es = a tijera
Y si la jugada no es igual a ninguno de las 3 el resultado es = a opción invalida Y REGRESO EL RESULTADO,
Entonces Ahora, puedo quitar todo este código y en vez de eso
Alert(“pc elige: “ + elección(pc))
Alert(“tú eliges: “ + elección(jugador))
Y guardamos
Control s
Este es mi codigo con saludo de bienvenida en la pagina
<!DOCTYPE html>
<html>
<head>
<meta charset=“utf-8” />
<title>Piedra, papel o tijeta</title>
<script>
function aleatorio(min, max) {
return Math.floor(Math.random() * (max - min + 1) + min)
}
function eleccion(jugada) {
let resultado = ""
if(jugada == 1) {
resultado = "Piedra " + nombre
} else if(jugada == 2) {
resultado = "Papel " + nombre
} else if(jugada == 3) {
resultado = "Tijera " + nombre
} else {
resultado = "Haz Elejido PERDER " + nombre
} return resultado
}
let nombre = ""
nombre = prompt(“Cuál es tu nombre?”)
alert("Bienvenido " + nombre)
// 1 es piedra, 2 es papel, 3 es tijera
let jugador = 0
let pc = aleatorio(1,3)
jugador = prompt(“Elige: 1 para piedra, 2 para papel y 3 para tijera”)
//alert(“Elejiste” + jugador)
alert("Tu eliges: " + eleccion(jugador))
alert("Pc elige: " + eleccion(pc))
// COMBATE
if(pc == jugador) {
alert("Empataste " + nombre)
} else if(jugador == 1 && pc == 3) {
alert("Ganaste " + nombre)
} else if (jugador == 2 && pc == 1) {
alert("Ganaste " + nombre)
} else if (jugador == 3 && pc == 2) {
alert("Ganaste " + nombre)
} else {
alert("Perdiste " + nombre)
}
</script>
</head>
<body>
<h1>Piedra, papel o tijera F5 para continuar</h1>
</body>
</html>
Así va mí código:
function aleatorio(min, max) {
return Math.floor( Math.random() * (max - min + 1) + min )
}
function eleccion(jugada) {
// Opciones de elección: 1 -> Piedra, 2 -> Papel, 3 -> Tijera
let resultado = ""
if(jugada == 1) {
resultado = "Piedra 🥌"
} else if(jugada == 2){
resultado = "Papel 🧻"
} else if(jugada == 3 ){
resultado = "Tijera ✂"
} else{
alert("Opción no disponible")
}
return resultado
}
let jugador = 0
let pc = aleatorio(1,3)
jugador = prompt("A jugar!! elije: 1 -> Piedra, 2 -> Papel ó 3 -> Tijera ")
alert("Humano elige: " + eleccion(jugador))
alert("Máquina elige: " + eleccion(pc))
//Combate!!
if(pc == jugador) {
alert("EMPATE! 😑")
} else if( (jugador == 1 && pc == 3)
|| (jugador == 2 && pc == 1)
|| (jugador == 3 && pc == 2) )
{
alert("GANASTE! 🏆")
} else{
alert("PERDISTE! 👎")
}
funciones:pedacitos de codigo
❤️
Tengo este error de corchete y no puedo solucionarlo pero unos solucion que funcione pero no me gusta es copiarlo en otro archivo y misteriosamente funciona 😐
// Este es el ejercicio de hacer un juego de piedra papel o tijera pero con funciones
let min = 1, max = 3, nombre = "", emoji = "", pc = Math.floor(Math.random() * (max - min + 1) + min)
function Asiganacion(valor) {
if (valor == 1) {
emoji = "✊"
} else if (valor == 2) {
emoji = "✋"
} else if (valor == 3) {
emoji = "✌"
} else {
emoji="Opcion invalida, No puede jugar"
}
return emoji
}
// nombre = prompt("Cual es su nombre")
let user = prompt("Hola, " + nombre + ", Seleccione una opcion, 1. Para ✊ 2. Para ✋ 3. Para ✌")
alert("El usuario eligio: "+ Asiganacion(user))
alert("La maquina eligio: "+ Asiganacion(pc))
if (user == pc) {
alert("Empataron por que La Maquina tambien saco " + emoji)
} else if (user < pc) {
alert("El usuario pierde, la maquina saco " + emoji)
} else if (user == 3 && pc == 1) {
alert("El usuario pierde la maquina saco " + emoji)
} else if (pc < user) {
alert("La maquina pierde el usaurio saco " + emoji)
} else if (pc == 3 && user == 1) {
alert("La maquina pierde el usaurio saco " + emoji)
}
</script>
Alt + Shitf + F Organiza TODO el código (le da espacios)
miren mi codigo de piedra papel o tijera
<code>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Algoritmo piedra, papel o tijera</title>
<script>
//1 es piedra, 2 es papel, 3 para tijera
let jugador = 0
let min = 1
let max = 3
let pc = Math.floor(Math.random() * (max - min + 1) + min)
//OBTENIENDO LA ELECCIÓN DEL JUGADOR
jugador = prompt("Elige: 1 para piedra, 2 para papel, 3 para tijera");
//alert("Elegiste " + jugador)
if(jugador == 1) {
alert("Elegiste ✊")
} else if(jugador == 2) {
alert("Elegiste 📄")
} else if(jugador == 3) {
alert("Elegiste ✂️")
}
else {
alert("Elegiste PERDER!!!")
}
if(pc == 1) {
alert("pc Eligio ✊")
} else if(pc == 2) {
alert("pc Eligio 📄")
} else if(pc == 3) {
alert("pc Eligio ✂️")
}
// PIEDRA PAPEL O TIJERA TU VS PC!!!
if(pc == jugador){
alert("EMPATE :O")
} else if(jugador == 1 && pc == 3) {
alert("GANASTE SIUUUU")
} else if (jugador == 2 && pc == 1){
alert("GANASTE SIUUUU")
} else if (jugador == 3 && pc == 2){
alert("GANASTE SIUUUU")
}
else {
alert("oh no... PERDISTE!!!")
}
</script>
</head>
<body>
<h1>Piedra, papel o tijera</h1>
</body>
</html>
“Programar es manejar la frustración del error”.
Recomiendo usar el inglés en nombres simples como rock, paper, scissors, player, win, tie, lose. Son pequeños detalles que aportan para familiarizar el idioma y nuestros proyectos. Aparte que nos preparan por si tenemos como objetivo trabajar en países angloparlantes. Have a good one, brothers and sisters 🐨🔝
Este es mi codigo con mucho ❤ para todos
<<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Piedra, papel o tijera</title>
<script>
function aleatorio(min, max) {
return Math.floor(Math.random() * ( max - min + 1 ) + min)
}
function eleccion(jugada) {
let resultado = ""
if(jugada == 1) {
resultado = "Piedra 🥌"
} else if(jugada == 2) {
resultado = "Papel 🧻"
} else if (jugada == 3) {
resultado = "Tijera ✂"
} else {
resultado = "MAL ELEGIDO"
}
return resultado
}
// 1 es piedra, 2 es papel, 3 es tijera
let jugador = 0
let pc = aleatorio(1,3)
jugador = prompt("Elige: 1 para piedra, 2 es papel, 3 para tijera")
//alert("Elegiste " + jugador)
alert("PC elige: " + eleccion(pc))
alert("Tu eliges: " + eleccion(jugador))
// COMBATE
if(pc == jugador) {
alert("EMPATE")
} else if(jugador == 1 && pc == 3) {
alert("GANASTE")
} else if(jugador == 2 && pc == 1) {
alert("GANASTE")
} else if(jugador == 3 && pc == 2) {
alert("GANASTE")
} else {
alert("PERDISTE jajajajajaj me burlo")
}
</script>
</head>
<body>
<h1>Piedra, papel o tijera</h1>
</body>
</html>>
Pos aquí andamos prosperando con nuevos cursos pa mi curriculum.
Jajajaja, Freddy haciendo un Bob Ross con eso de los parentesis incompletos 😂
<!DOCTYPE html>
Este es un tipo de documento en HTML5, es una declaración que indica al navegador web que se está utilizando HTML5.
<html>
Este es el contenedor principal de todo el código HTML, es el lugar donde se escriben todas las etiquetas necesarias para crear una página web.
<head>
Es una sección donde se escriben las meta-informaciones de una página web, esto incluye cosas como el título de la página que se muestra en la pestaña del navegador, los enlaces a los estilos css y javascript entre otros.
<meta charset=“utf-8”>
Es una meta-etiqueta que especifica la codificación de caracteres que se utilizará en el documento HTML.
<title>Piedra Papel o Tijera</title>
Es el título que aparecerá en la pestaña del navegador y que es utilizado por los buscadores para identificar la página.
<script>
Es donde se escribe el código JavaScript, es decir, las instrucciones que harán que la página web tenga ciertas acciones.
function aleatorio(min, max) {return Math.floor(Math.random()*(max-min + 1) + min)}
Esta es una función, es un bloque de código reutilizable que se puede llamar en varios puntos de nuestro código. En este caso esta función recibe dos argumentos min y max, que representan los valores mínimo y máximo de un rango. Utiliza una función predefinida de javascript Math.random() que genera un número aleatorio entre 0 y 1, luego se multiplica por el rango que queremos (max-min) y se suma el valor mínimo. Finalmente se utiliza Math.floor() para redondear hacia abajo el número resultante asegurando así que sea un entero. El valor que devuelve la función es ese número aleatorio entero dentro del rango que se le especifico.
Por ahora estoy viendo el material y lo repetire hasta que aprenda, por ahora no hago aportes
[ ] —> corchetes
{ } —> llaves
( ) —> paréntesis
aqui esta la mia, totalmente funcional
!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
<title>jueguito de 🥌 🧻 ✂</title>
<script>
//intro
alert("Bienvenido a tu juego 😀")
let choice = ""
choice = prompt("¿Deseas jugar?, si o no" )
if(choice == "si"){
//corre el juego
// 1 roca, 2 papel, 3 cuchilla
// inicio de funciones
function aleatorio(min,max){
return Math.floor(Math.random() * (max - min + 1) + min)
}
function opcion (move){
let resultado = ""
if (move == 1){
resultado = "🥌"
}else if (move == 2){
resultado = "🧻"
}else if (move == 3){
resultado = "✂"
} else alert("el " + player + " no se vale, tramposo")
return resultado
}
// fin de funciones
//declaracion de variables
let player = 0
let pc = aleatorio(1,3)
// eleccion del player
player = prompt("elige tu tirada: 1 piedra, 2 papel, 3 tijera")
//BATTALLA
if (player == 1 || player == 2 || player == 3){
alert("pc elige: " + opcion(pc) + " mientras que tu elegiste: " + opcion(player))
if (player == pc){
alert("entonces es EMPATE 😮")
m = "hum, empate, mayor suerte la prosima vez 🤗"
} else if (player == 1 && pc == 3){
alert("entonces GANASTE😀")
m = "Felicidades, eres un ¡CAMPEON! 😎"
} else if (player == 3 && pc == 2){
alert("entonces GANASTE😀")
m = "Felicidades, eres un ¡CAMPEON! 😎"
} else if (player == 2 && pc == 1){
alert("entonces GANASTE😀")
m = "Felicidades, eres un ¡CAMPEON! 😎"
} else {
alert("entonces PERDISTE😪")
m = "Felicidades, eres un ¡PERDEDOR, PERRA! 😡"
}
alert(m)
} else { alert("no puedes jugar con esa opcion")}
//final del juego
// despedida
let bye = ""
bye = prompt("¿Deseas volver a jugar? 🤔: si o no")
if (bye == "si"){
alert("recarga la pagina 😀")
}else {
alert("cierra esta pagina, hasta luego 😘")
}
}else if (choice == "no"){
alert("tienes miedo de que te gane, ¡PERRA!" )
}else{
alert("(" + choice + ") no es valido 🤷🏻♂️")
}
</script>
</head>
<body>
<p>espero que les halla gustado mi aporte</p>
</body>
</html>
Segui la misma logica para poder sintentizar en una funcion la parte del combate en el juego, cualquier sugerencia estare abierto a leerla
function combate(jugador,pc){
let desicion
if (pc == jugador) {
desicion="Empate"
} else if (jugador == 1 && pc == 3) {
desicion="Haz ganado"
} else if (jugador == 2 && pc == 1) {
desicion="Haz ganado"
} else if (jugador == 3 && pc == 2) {
desicion="Haz ganado"
} else {
desicion="Perdiste"
}
return desicion
}
alert(combate(jugador,pc))
Como 20 minutos en un error, pero con mucha atención al detalle logre que funcionara.
function randomm(max,min){
return Math.floor(Math.random()*(max-min+1)+min);
}
function pchoise(choise){
let resultado = "";
if(choise==1){
resultado = "Stone 🥌";
return resultado;
}else if(choise==2){
resultado = "Paper 🧻";
return resultado;
}else{
resultado = " Scissors ✂";
return resultado;
}
}
function match(home,player){
if(player == home){
alert('EMPATEE 🎮💥');
}else if((player == 1 && home == 3) || (player == 2 && home == 1) || (player == 3 && home == 2) ){
alert('GANADORA 🎉🥳🥂');
}else {
alert('Perdiste 😭😿🥀');}
}
//1 🧻 |2 🥌 |3 ✂
let jugador = 0;
let pc = randomm(3,1);
jugador = prompt('1 Piedra, 2 Papel, 3 Tijera');
alert("PC elige: " + pchoise(pc));
alert("Tu eliges: " + pchoise(jugador));
match(pc , jugador);
definitivamente si le toca a uno mirar bien entre mayúsculas puntos comas y demás y tener mucha paciencia para encontrar el error ya me paso y gracias a los comentarios lo pude solucionar
El proceso de refactoring en un proceso sistemático, en el cual vamos a conseguir mejorar nuestro código sin crear nuevas funcionalidades.
Esto último es muy importante, ya que por una parte mejoramos el código, y las funcionalidades se hacen por otro lado.
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?