Saltar al contenido principal
Codigo Heroe
Tarea anterior
Objetos16/25
A la lista de tareas
  1. 1. Una función para lanzar los dados
  2. 2. Pasar los datos de los participantes
  3. 3. Sumar puntos con +=
  4. 4. Crear un objeto
  5. 5. Leer propiedades con la notación de punto
  6. 6. Un arreglo de objetos
  7. 7. Modificar las propiedades de un objeto
  8. 8. Referencias a objetos
  9. 9. Agrupar las reglas en un objeto
  10. 10. Un ciclo para los intentos
  11. 11. Una función para encontrar ganadores
  12. 12. Recorrer los objetos de un arreglo
  13. 13. Buscar la puntuación máxima
  14. 14. Agregar ganadores con push
  15. 15. Detectar un empate general
  16. 16. Construir el mensaje de los ganadores
  17. 17. Agregar participantes y cambiar las reglas
  18. 18. Ajustar el mensaje con condiciones
  19. 19. Devolver un objeto desde una función
  20. 20. Crear y llamar a un método
  21. 21. Leer propiedades desde un método
  22. 22. Un objeto como diccionario
  23. 23. Notación de corchetes
  24. 24. El contexto de la llamada y this
  25. 25. Crear otro objeto con la misma función
Siguiente tarea
  • Matriz de skills
  • Cursos
  • Registro
  • Iniciar sesión

Loading…
En unos segundos, estará listo.

  • Teoría
  • Teoría

Construir el mensaje de los ganadores

Ya atendimos el caso en que todos obtienen el mismo resultado. Cuando ocurra, podemos mostrar el mensaje y terminar inmediatamente la función. Esto simplifica el código que viene después, porque ya no tendrá que considerar ese caso.

Ahora describiremos qué pasa cuando gana un solo participante o varios, pero no todos. ¿Qué necesitamos?

  • Si no ganaron todos, por ahora el mensaje empezará con «Ganó». Crearemos una variable para guardar ese comienzo y no olvidaremos el espacio final.
  • Como los objetos de los ganadores están en un arreglo, lo recorreremos para obtener sus nombres y concatenarlos al mensaje.
  • Agregaremos la puntuación de los ganadores. No hace falta recorrer el arreglo para esto: todos tienen los mismos puntos. Tomaremos los del primer elemento del arreglo de ganadores.
  • Mostraremos el mensaje en la consola para ver el resultado.
  • script.js
JavaScript
let gameRuleset = { diceNumber: 2, maxAttempts: 3 }; let firstCat = { name: 'Cupcake', points: 0 }; let secondCat = { name: 'Rodolfo', points: 0 }; let cats = [firstCat, secondCat]; let runGame = function (ruleset, players) { for (let currentAttempt = 1; currentAttempt <= ruleset.maxAttempts; currentAttempt++) { for (let i = 0; i < players.length; i++) { let throwResult = keks.throwDice(ruleset.diceNumber, ruleset.diceNumber * 6); players[i].points += throwResult; console.log(players[i].name + ' sacó ' + players[i].points); } } return players; }; let getWinners = function (players) { let winners = []; let max = players[0]; for (let i = 0; i < players.length; i++) { let currentPlayer = players[i]; if (currentPlayer.points > max.points) { max = currentPlayer; winners = [max]; } else { if (currentPlayer.points === max.points) { winners.push(currentPlayer); } } } return winners; }; let printWinners = function (players, winners) { if (players.length === winners.length) { console.log('¡Todos los gatos son igual de buenos!'); } }; cats = runGame(gameRuleset, cats); console.log(cats); let tops = getWinners(cats); console.log(tops); printWinners(cats, tops);
Consola

El código ha cambiado, haga clic en "Ejecutar" o active la ejecución automática.

Resultado de la ejecución

ObjetivosRealizado
0

    Completa la función printWinners:

    1. Después de mostrar '¡Todos los gatos son igual de buenos!', termina la función con return.
    2. Después de la primera condición, crea la variable message con la cadena 'Ganó '.
    3. Después de esa variable, escribe un ciclo for que incremente i desde 0 hasta la longitud de winners, sin incluir ese valor, de uno en uno en cada iteración.
    4. Dentro del ciclo, agrega los nombres al mensaje: message += winners[i].name.
    5. Después del ciclo, usa += para agregar a message la cadena ' con esta cantidad de puntos: ' y los puntos del primer participante del arreglo winners.
    6. Muestra message en la consola.
    Codigo Heroe

    © 2023-2026, codigoheroe.com