Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

290
Views
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 answers
Answer question

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 Report

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!