Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

292
Vistas
Ayuda de piedra, papel o tijera (JavaScript)

Actualmente estoy trabajando en el juego TOP piedra, papel o tijera y tengo algunos problemas. La función playRound se muestra como indefinida en la consola. No estoy seguro de por qué, ya que todas mis otras funciones están funcionando. Quizás hice algo mal en las otras funciones pero no estoy seguro. Siento que estoy tan cerca pero tan lejos de que esto funcione. Tal vez son solo errores comunes de principiante, no estoy seguro. Cualquier ayuda sería apreciada.

 function computerPlay() { var pickRandom = ["Rock", "Paper", "Scissors"]; var randomMove = pickRandom[Math.floor(Math.random() * 3)]; if (randomMove == "Rock") { randomMove.value = 0; } else if (randomMove == "Paper") { randomMove.value = 1; } else if (randomMove == "Scissors") { randomMove.value = 2; } return randomMove; } console.log(computerPlay()); var playerSelection = prompt("pick rock paper or scissors"); function userPlay() { if (playerSelection == "rock") { playerSelection.value = 0; } else if (playerSelection == "paper") { playerSelection.value = 1; } else if (playerSelection == "scissors") { playerSelection.value = 2; } return playerSelection; } console.log(userPlay()); function playRound(playerPick, computerSelection) { if (playerPick == 0 && computerSelection == 2) { alert("you win!!!"); } else if (playerPick == 0 && computerSelection == 1) { alert("you lose hahahahaha!!!"); } else if (playerPick == computerSelection) { alert("its a tie"); } } const playerPick = userPlay(); const computerSelection = computerPlay(); console.log(playRound(playerPick, computerSelection));
about 4 years ago · Juan Pablo Isaza
3 Respuestas
Responde la pregunta

0

 function computerPlay() { var pickRandom = ["Rock", "Paper", "Scissors"]; var randomMove = pickRandom[Math.floor(Math.random() * 3)]; if (randomMove == "Rock") { return 0; } else if (randomMove == "Paper") { return 1; } else if (randomMove == "Scissors") { return 2; } } var playerSelection = prompt("pick Rock, Paper or Scissors"); function userPlay() { if (playerSelection == "Rock") { return 0; } else if (playerSelection == "Paper") { return 1; } else if (playerSelection == "Scissors") { return 2; } } function playRound(playerPick, computerSelection) { console.log("player", playerPick) console.log("computerSelection", computerSelection) if (playerPick == 0 && computerSelection == 2) { console.log("you win!!!"); } else if (playerPick == 0 && computerSelection == 1) { console.log("you lose hahahahaha!!!"); } else if (playerPick == computerSelection) { console.log("its a tie"); } } const playerPick = userPlay(); const computerSelection = computerPlay(); playRound(playerPick, computerSelection);

Solo necesitaba devolver los números de computerPlay y userPlay. Además, tenga cuidado con la distinción entre mayúsculas y minúsculas cuando utilice el aviso.

about 4 years ago · Juan Pablo Isaza Denunciar

0

No debe ejecutarlo en console.log, ya que no tiene una palabra clave de return , por lo que devolverá undefined . Simplemente ejecútelo normalmente y estará bien.

about 4 years ago · Juan Pablo Isaza Denunciar

0

Estás cerca. Lo limpié un poco, agregué una función que asigna variantes de entrada humana a un valor normalizado y reemplacé las condiciones (incompletas) en playRound con un objeto que captura todas las condiciones ganadoras en un objeto (ver beats )...

 function normalizePlay(play) { const variants = { r: 'rock', rock: 'rock', p: 'paper', paper: 'paper', s: 'scissors', scissors: 'scissors' }; return variants [play.toLowerCase()]; } function computerPlay() { var pickRandom = ["rock", "paper", "scissors"]; return pickRandom[Math.floor(Math.random() * 3)]; } function playRound(human, computer) { const beats = { rock: 'scissors', scissors: 'paper', paper: 'rock' } let result; if (human === computer) { result = 'tie'; } else if (beats[human] === computer) { result = 'you win'; } else result = 'computer wins'; console.log(`you picked ${human}, computer picked ${computer}... ${result}`) } const human = normalizePlay(prompt("pick rock paper or scissors (or r, p, s)")); const computer = computerPlay(); playRound(human, computer);

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda