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

445
Visualizações
JavaScript: ¿Posiblemente asíncrono vs síncrono para un problema de bucle? ¿O algún otro error?

Realización de una tarea de JavaScript: necesito crear un juego en el que el usuario intente adivinar correctamente 4 números aleatorios del 1 al 6. Ex. 1 3 2 4 o 1 6 5 3 o etc. La computadora debe analizarlo y decirle al jugador (a) cuántos de los dígitos adivinados eran correctos, pero en el lugar equivocado, y (b) cuántos de los dígitos adivinados los dígitos eran correctos y estaban en el lugar correcto.

Ejemplo a continuación ( negrita = entradas del usuario ):

Bienvenido a Mastermind

Ingrese sus cuatro conjeturas numéricas (separadas por espacios): 2 4 3 1

Tiene 2 números correctos y 1 ubicación correcta.

Ingrese sus cuatro conjeturas numéricas (separadas por espacios): 4 5 3 2

¡Correcto!

¡Eres una mente maestra!

Sin embargo, en mi código, donde cuento la cantidad de números correctos en posiciones incorrectas y posiciones correctas, la consola genera números incorrectos. Hago copias de correctAnswerList y userGuessList. Entonces, si la suposición del usuario coincide con la respuesta correcta, cambio los números en estas copias (fuera del rango 1-6) para que no se vuelvan a contar. Traté de buscar en Google cuál podría ser mi problema ya que soy nuevo en JavaScript. Lea algunas cosas sobre asíncrono para bucles, pero realmente no lo entiendo. El código está abajo, ¡gracias de antemano!

 function checkingCorrect(userGuessList, correctAnswerList){ var correctLocation = 0; var correctNumber = 0; var copyUserGuessList = userGuessList; var copyCorrectAnswerList = correctAnswerList for(var i = 0; i < 4; i++){ if(userGuessList[i] == correctAnswerList[i]){ correctNumber++ } for(var x = 0; x < 4; x++){ if(copyUserGuessList[i] == copyCorrectAnswerList[x]){ copyUserGuessList[i] = -1; copyCorrectAnswerList[x] = 0; } } if(copyUserGuessList[i] == -1){ correctNumber++; } } correctNumber = correctNumber - correctLocation; return([correctNumber, correctLocation]); }
about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

  1. Para crear copias de arreglos, no puede simplemente reasignar su referencia ( var copyUserGuessList = userGuessList; ) y, en su lugar, debe crear nuevos arreglos que se pueden hacer fácilmente usando la sintaxis extendida entre paréntesis de arreglos ( var copyUserGuessList = [...userGuessList]; ).

  2. El incremento de correctNumber en if(userGuessList[i] == correctAnswerList[i]){ correctNumber++ } debe reemplazarse con el incremento de correctLocation y dar como resultado if(userGuessList[i] == correctAnswerList[i]){ correctLocation++ } .

Su código resultante debería tener el siguiente aspecto:

 function checkingCorrect(userGuessList, correctAnswerList){ var correctLocation = 0; var correctNumber = 0; var copyUserGuessList = [...userGuessList]; var copyCorrectAnswerList = [...correctAnswerList]; for(var i = 0; i < 4; i++){ if(userGuessList[i] == correctAnswerList[i]){ correctLocation++ } for(var x = 0; x < 4; x++){ if(copyUserGuessList[i] == copyCorrectAnswerList[x]){ copyUserGuessList[i] = -1; copyCorrectAnswerList[x] = 0; } } if(copyUserGuessList[i] == -1){ correctNumber++; } } correctNumber = correctNumber - correctLocation; return([correctNumber, correctLocation]); }
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