Proyecto: Encuentra al ganador del torneo - parte 2

Clase 69 de 80Curso de JavaScript Desde Cero

Contenido del curso

Primeros Pasos

Funciones y This

Resumen

¿Cómo almacenar la puntuación de los equipos ganadores?

En un torneo de lenguajes de programación, identificar claramente al ganador es crucial. No basta con saber quién ganó una partida, sino cuántos puntos acumuló a lo largo del torneo. Este enfoque nos permite crear un sistema de puntuación dinámico y adaptable a cualquier cambio en los competidores.

¿Qué estructura utilizar para guardar los puntos?

Para almacenar los puntos de cada equipo, utilizamos un objeto en JavaScript. Nos permitirá gestionar de manera sencilla los nombres de los equipos y sus respectivas puntuaciones. Así se logra un almacenamiento ordenado y accesible.

const scores = {}; const winningTeam = "JavaScript"; if (scores[winningTeam] === undefined) { scores[winningTeam] = 0; } scores[winningTeam] += 3;

¿Cómo evitar sumar puntos a equipos no existentes?

A menudo, nos enfrentamos al problema de intentar acceder a propiedades que no existen en un objeto. Al hacerlo, obtenemos un valor undefined. Sin embargo, al usar el operador ||, podemos establecer un valor predeterminado para evitar estos problemas.

scores[winningTeam] = (scores[winningTeam] || 0) + 3;

Este código asegura que si winningTeam no existe dentro de scores, se le asignará 0 antes de añadir 3 puntos.

¿Cómo determinar al ganador del torneo?

Una vez que hemos contabilizado los puntos de cada equipo, necesitamos determinar cuál es el equipo con más puntos. Para ello, utilizamos una variable para almacenar al ganador y un condicional para actualizarlo en cada iteración.

¿Cómo se estructura el condicional para encontrar al ganador?

El condicional se revisa dentro del bucle que procesa los resultados, verificando qué equipo tiene el mayor puntaje y garantizando que el número de puntos sea mayor que cero.

let winner = ''; for (let team in scores) { if (scores[team] > (scores[winner] || 0) && scores[team] > 0) { winner = team; } } console.log("The tournament winner is", winner);

En este código, se verifica para cada equipo si su puntuación es mayor que la del actual ganador registrado, asegurando que este cambio solo ocurra si el equipo supera el puntaje más alto visto hasta el momento.

¿Cómo garantizar que siempre haya un ganador claro?

Para que el sistema funcione adecuadamente:

  1. Asegúrate de que todos los resultados del torneo estén correctamente ingresados.
  2. Verifica el operador lógico dentro del objeto para confirmar que los valores undefined se conviertan a cero.
  3. Asegúrate que las comparaciones dentro del condicional que determina el ganador consideren correctamente el puntaje actual del equipo.

Al seguir estos pasos, el código garantizará que siempre se determine al ganador correcto y se pueda aplicar incluso en situaciones más complejas o con un conjunto distinto de competidores.

Experimenta con diferentes lenguajes y resultados para profundizar en tu comprensión de este mecanismo. La práctica es la clave para afianzar el conocimiento en estructuras de control y manipulación de datos en programación.