Mi primera vez y primer proyecto: Piedra, Papel, Tijeras. He pasado horas tratando de averiguar qué podría estar mal con mis declaraciones if/else. Independientemente de las condiciones evaluadas, devuelve la primera declaración (es un empate"). Mi código es el siguiente;
const computerSelection = computerPlay(); const playerSelection = humanPlay(); function computerPlay() { let gameItems = ["rock", "paper", "scissors"]; let randItem = gameItems[Math.floor(Math.random() * gameItems.length)]; return randItem.toLowerCase(); } function humanPlay() { let selectItem = prompt( "Please pick one battle item: rock, paper, or scissors" ); return selectItem.toLowerCase(); } function playRound(playerSelection, computerSelection) { if (playerSelection === computerSelection) { return "It's a tie!"; } else if (computerSelection === "rock" && playerSelection === "scissors") { return "You lose!"; } else if (computerSelection === "scissors" && playerSelection === "rock") { return "You win"; } else if (computerSelection === "scissors" && playerSelection === "paper") { return "You lose"; } else if (computerSelection === "paper" && playerSelection === "scissors") { return "You win"; } else if (computerSelection === "paper" && playerSelection === "rock") { return "You lose"; } else if (computerSelection === "rock" && playerSelection === "paper") { return "You win"; } else { return "Please play again"; } } console.log(computerSelection); console.log(playerSelection); console.log(playRound());Agrega console.log(playerSelection, computerSelection) a la primera línea de la función playRound() . Verá que ambos valores no están undefined , porque no está pasando esos valores a la función cuando la llama.
Para solucionarlo, cambia la última línea a: console.log(playRound(computerSelection, playerSelection));