este es mi codigo
let w = 0; let l = 0; function playRound (playerSelection, computorSelection) { if (playerSelection == computorSelection) { console.log("You tied, try again."); } else if ((playerSelection - computorSelection + 3) % 3 == 1) { console.log("You win!"); w++; } else { console.log("You lose!"); l++; } } function game() { playerSelection(); playRound(); if (w == 5) { console.log("You've won 5 times! Well done!"); } else if (l == 5) { console.log("You've lost 5 times. Too bad."); } else { playerSelection(); playRound(); } }Hay más código encima de este, pero ese código funciona bien. Quiero que la función playRound cambie el valor de l y w dependiendo de si la ronda es una ganancia o una pérdida y que la función del juego continúe el juego hasta que hayan ocurrido 5 pérdidas o 5 victorias.
Cuando llamo a la función del juego, el código comienza correctamente, pero siempre da un empate como la primera ronda, lo inicia de nuevo y regresa indefinido. ¿Qué estoy haciendo mal?
En su función de game , está llamando a playRound() sin pasarle ningún argumento.
Sin embargo, playRound acepta dos, playerSelection y computorSelection , y en su primera línea compara los dos:
if (playerSelection == computorSelection) { Dado que ambos valores no están undefined (debido a que no se pasan), esa condición se evalúa como true y la función declara un empate y no incrementa w o l .