Estoy construyendo un proyecto de piedra, papel o tijera que se supone que tomará 5 rondas. El usuario recibirá un aviso e ingresará "piedra", "papel" o "tijeras". Cuando escribo el código así:
let playerSelection = prompt("Rock, paper ou scissors?").toLowerCase(); let game = function() { for (let i = 0; i < 5; i++) { compare(playerSelection, computerPlay); if (compare === "You win!") { playerScore++; } else if (compare === "You lose!") { computerScore++; } else if (compare === "It's a tie!") { } } }Aparece el aviso y puedo ingresar algo, sin embargo, solo sucede una vez y el bucle no funciona. Cuando coloco el indicador dentro del bucle, así:
let game = function() { for (let i = 0; i < 5; i++) { let playerSelection = prompt("Rock, paper ou scissors?").toLowerCase(); compare(playerSelection, computerPlay); if (compare === "You win!") { playerScore++; } else if (compare === "You lose!") { computerScore++; } else if (compare === "It's a tie!") { } } }¡El indicador nunca aparece! ¿Cómo puedo resolver esto y hacer que sea rápido 5 veces?
Creo que hay algún error en su función de comparación. echa un vistazo al fragmento debajo de su funcionamiento bien.
const compare = function(playerSelection, computerPlay) { // write your logic here return "You win!"; } let game = function() { for (let i = 0; i < 5; i++) { let playerSelection = prompt("Rock, paper ou scissors?").toLowerCase(); const outputs = ["rock", "paper", "scissor"]; compare(playerSelection, Math.floor(Math.random()*3)); if (compare === "You win!") { playerScore++; } else if (compare === "You lose!") { computerScore++; } else if (compare === "It's a tie!") { } } } game();Bueno, no estás llamando a la función. usar
game();después de la definición de la función