Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

138
Visualizações
Piedra, papel y tijera elige las respuestas al azar

¡Gran día para todos!

Me preguntaba por qué si ya elegí "rock" (en la selección de jugador const) y la computadora eligió "rock", me imprime que "Gana la computadora" o, a veces, imprime que gané el juego en lugar de ser un empate. Lo mismo ocurre con el otro elemento en el código.

¿Qué habría pasado para que el resultado del juego también fuera aleatorio?

Aquí está mi código:

 function computerPicks() { let compChoices = ["rock", "paper", "scissors"] // let computer pick [rock, paper, scissors] let randomizeChoice = Math.floor(Math.random() * compChoices.length) + 1 // randomize rock paper and scissors if (randomizeChoice === 1) { return "rock"; } if (randomizeChoice === 2) { return "paper"; } if (randomizeChoice === 3) { return "scissors"; } } console.log(computerPicks()); // view computer's choice function playRound(playerSelection, computerSelection) { if (playerSelection === "rock") { if (computerSelection === "rock") { return "It is a tie!!" } else if (computerSelection === "paper") { return "The computer wins!"; } else { return "You win this game!"; } } else if (playerSelection === "paper") { if (computerSelection === "paper") { return "It is a tie!!" } else if (computerSelection === "rock") { return "The computer wins!"; } else { return "You win this game!"; } } else { if (computerSelection === "rock") { return "Computer wins!"; } else if (computerSelection === "paper") { return "User wins!"; } else { return "Draw!"; } } } const playerSelection = "scissors"; // primary choice const computerSelection = computerPicks(); // calls the randomized choices console.log(playRound(playerSelection, computerSelection)); // print out the result

Creo que también es aleatorio debido a cómo llamé al aleatorizador o cómo se declaró en la función computerPicks().

about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

La pregunta ha sido respondida correctamente , así que esto es solo una sugerencia de los cambios que podrías hacer en tu juego que podrían simplificar las cosas.

Tratar con muchos niveles de sentencias if/else puede ser difícil de comprender, mantener y depurar.

Podría reducir gran parte de la complejidad almacenando parte de la lógica del motor en un objeto que defina qué opciones superan a qué opciones (vea el mal llamado whatBeatsWhat ).

 // Explicit mapping of winning key (ie "rock") beating losing value (ie "scissors"). const whatBeatsWhat = { rock: "scissors", paper: "rock", scissors: "paper", } // Derive computerChoices from keys of whatBeatsWhat. const computerChoices = Object.keys(whatBeatsWhat) function computerPicks() { // Randomize rock paper and scissors. let randomizeChoice = Math.floor(Math.random() * computerChoices.length) // randomizeChoice will be one of [0,1,2] representing all possible indices of computerChoices. return computerChoices[randomizeChoice] } function playRound(playerSelection, computerSelection) { if (playerSelection === computerSelection) { return "It is a tie!!" } // Check if playerSelection in whatBeatsWhat maps to computerSelection // and if so, player has beaten computer. if (whatBeatsWhat[playerSelection] === computerSelection) { return "You win this game!" } // Undoubtedly, whatBeatsWhat[computerSelection] === playerSelection return "The computer wins!" } const playerSelection = "scissors" const computerSelection = computerPicks() const result = playRound(playerSelection, computerSelection) console.log(`${result} (${playerSelection} vs ${computerSelection})`)

about 4 years ago · Juan Pablo Isaza Relatório

0

Su programa no se comporta como se esperaba porque está utilizando el operador '===' para comparar cadenas. El operador '===' es un operador de igualdad estricta, lo que significa que solo devolverá verdadero si ambos operandos se refieren al mismo objeto. En su caso, '==' sería más apropiado ya que está verificando la igualdad básica.

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda